col.width <- c(37, 10, 1, 1, 3, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 8, 2, 2, 2, 4, 4, 1, 4, 1, 1,
1, 3, 2, 2, 8, 2, 5, 5, 5, 4, 5, 5, 5,4, 2, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 8,
8, 8, 2, 1, 1, 1, 1, 8, 1, 1, 8, 1, 1, 2, 2, 5, 2, 5, 3, 1, 3, 1, 8, 8, 2, 8,
2, 8, 2, 2, 1, 8, 1, 1, 1, 1, 1, 8, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 3, 1, 1,
1, 1, 1, 1, 1, 1, 1)
col.names.abr <- c("PUF_CASE_ID", "PUF_FACILITY_ID", "FACILITY_TYPE_CD", "FACILITY_LOCATION_CD",
"AGE", "SEX", "RACE", "SPANISH_HISPANIC_ORIGIN", "INSURANCE_STATUS",
"MED_INC_QUAR_00", "NO_HSD_QUAR_00", "UR_CD_03", "MED_INC_QUAR_12", "NO_HSD_QUAR_12",
"UR_CD_13", "CROWFLY", "CDCC_TOTAL_BEST", "SEQUENCE_NUMBER", "CLASS_OF_CASE",
"YEAR_OF_DIAGNOSIS", "PRIMARY_SITE", "LATERALITY", "HISTOLOGY", "BEHAVIOR", "GRADE",
"DIAGNOSTIC_CONFIRMATION", "TUMOR_SIZE", "REGIONAL_NODES_POSITIVE",
"REGIONAL_NODES_EXAMINED", "DX_STAGING_PROC_DAYS", "RX_SUMM_DXSTG_PROC", "TNM_CLIN_T",
"TNM_CLIN_N", "TNM_CLIN_M", "TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M",
"TNM_PATH_STAGE_GROUP", "TNM_EDITION_NUMBER", "ANALYTIC_STAGE_GROUP", "CS_METS_AT_DX",
"CS_METS_EVAL", "CS_EXTENSION", "CS_TUMOR_SIZEEXT_EVAL", "CS_METS_DX_BONE", "CS_METS_DX_BRAIN",
"CS_METS_DX_LIVER", "CS_METS_DX_LUNG", "LYMPH_VASCULAR_INVASION", "CS_SITESPECIFIC_FACTOR_1",
"CS_SITESPECIFIC_FACTOR_2", "CS_SITESPECIFIC_FACTOR_3", "CS_SITESPECIFIC_FACTOR_4",
"CS_SITESPECIFIC_FACTOR_5", "CS_SITESPECIFIC_FACTOR_6", "CS_SITESPECIFIC_FACTOR_7",
"CS_SITESPECIFIC_FACTOR_8", "CS_SITESPECIFIC_FACTOR_9", "CS_SITESPECIFIC_FACTOR_10",
"CS_SITESPECIFIC_FACTOR_11", "CS_SITESPECIFIC_FACTOR_12", "CS_SITESPECIFIC_FACTOR_13",
"CS_SITESPECIFIC_FACTOR_14", "CS_SITESPECIFIC_FACTOR_15", "CS_SITESPECIFIC_FACTOR_16",
"CS_SITESPECIFIC_FACTOR_17", "CS_SITESPECIFIC_FACTOR_18", "CS_SITESPECIFIC_FACTOR_19",
"CS_SITESPECIFIC_FACTOR_20", "CS_SITESPECIFIC_FACTOR_21", "CS_SITESPECIFIC_FACTOR_22",
"CS_SITESPECIFIC_FACTOR_23", "CS_SITESPECIFIC_FACTOR_24", "CS_SITESPECIFIC_FACTOR_25",
"CS_VERSION_LATEST", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS", "DX_DEFSURG_STARTED_DAYS",
"RX_SUMM_SURG_PRIM_SITE", "RX_HOSP_SURG_APPR_2010", "RX_SUMM_SURGICAL_MARGINS",
"RX_SUMM_SCOPE_REG_LN_SUR", "RX_SUMM_SURG_OTH_REGDIS", "SURG_DISCHARGE_DAYS", "READM_HOSP_30_DAYS",
"REASON_FOR_NO_SURGERY", "DX_RAD_STARTED_DAYS", "RX_SUMM_RADIATION", "RAD_LOCATION_OF_RX",
"RAD_TREAT_VOL", "RAD_REGIONAL_RX_MODALITY", "RAD_REGIONAL_DOSE_CGY", "RAD_BOOST_RX_MODALITY",
"RAD_BOOST_DOSE_CGY", "RAD_NUM_TREAT_VOL", "RX_SUMM_SURGRAD_SEQ", "RAD_ELAPSED_RX_DAYS",
"REASON_FOR_NO_RADIATION", "DX_SYSTEMIC_STARTED_DAYS", "DX_CHEMO_STARTED_DAYS", "RX_SUMM_CHEMO",
"DX_HORMONE_STARTED_DAYS", "RX_SUMM_HORMONE", "DX_IMMUNO_STARTED_DAYS", "RX_SUMM_IMMUNOTHERAPY",
"RX_SUMM_TRNSPLNT_ENDO", "RX_SUMM_SYSTEMIC_SUR_SEQ", "DX_OTHER_STARTED_DAYS", "RX_SUMM_OTHER",
"PALLIATIVE_CARE", "RX_SUMM_TREATMENT_STATUS", "PUF_30_DAY_MORT_CD", "PUF_90_DAY_MORT_CD",
"DX_LASTCONTACT_DEATH_MONTHS", "PUF_VITAL_STATUS", "RX_HOSP_SURG_PRIM_SITE", "RX_HOSP_CHEMO",
"RX_HOSP_IMMUNOTHERAPY", "RX_HOSP_HORMONE", "RX_HOSP_OTHER", "PUF_MULT_SOURCE", "REFERENCE_DATE_FLAG",
"RX_SUMM_SCOPE_REG_LN_2012", "RX_HOSP_DXSTG_PROC", "PALLIATIVE_CARE_HOSP", "TUMOR_SIZE_SUMMARY",
"METS_AT_DX_OTHER", "METS_AT_DX_DISTANT_LN", "METS_AT_DX_BONE", "METS_AT_DX_BRAIN",
"METS_AT_DX_LIVER", "METS_AT_DX_LUNG", "NO_HSD_QUAR_16", "MED_INC_QUAR_16", "MEDICAID_EXPN_CODE")
#Read in data for each subsite
lip <- read_fwf('NCDBPUF_Lip.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
melanoma <- read_fwf('NCDBPUF_Melanoma.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
skin <- read_fwf('NCDBPUF_OtSkin.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
hodgextr <- read_fwf('NCDBPUF_HodgExtr.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
hodgndal <- read_fwf('NCDBPUF_HodgNdal.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
NHLndal <- read_fwf('NCDBPUF_NHLNdal.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
#Combine data for all subsites
dat <- bind_rows(lip, melanoma, skin, hodgextr, hodgndal, NHLndal)
rm(lip, melanoma, skin, hodgextr, hodgndal, NHLndal)
#only works for melanoma
prim_site_text <- data_frame(PRIMARY_SITE = c("C440",
"C441",
"C442",
"C443",
"C444",
"C445",
"C446",
"C447",
"C448",
"C449",
"C510",
"C511",
"C512",
"C518",
"C519",
"C600",
"C601",
"C602",
"C608",
"C609",
"C632"),
SITE_TEXT = c(
"C44.0 Skin of lip, NOS",
"C44.1 Eyelid",
"C44.2 External ear",
"C44.3 Skin of ear and unspecified parts of face",
"C44.4 Skin of scalp and neck",
"C44.5 Skin of trunk",
"C44.6 Skin of upper limb and shoulder",
"C44.7 Skin of lower limb and hip",
"C44.8 Overlapping lesion of skin",
"C44.9 Skin, NOS",
"C51.0 Labium majus",
"C51.1 Labium minus",
"C51.2 Clitoris",
"C51.8 Overlapping lesion of vulva",
"C51.9 Vulva, NOS",
"C60.0 Prepuce",
"C60.1 Glans penis",
"C60.2 Body of penis",
"C60.8 Overlapping lesion of penis",
"C60.9 Penis",
"C63.2 Scrotum, NOS"))
dat <- merge(dat, prim_site_text, by = "PRIMARY_SITE", all.x = TRUE)
rm(prim_site_text)
# convert numeric variables from character class to numeric class
num_vars <- c("AGE", "CROWFLY", "TUMOR_SIZE", "DX_STAGING_PROC_DAYS", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS",
"DX_DEFSURG_STARTED_DAYS", "SURG_DISCHARGE_DAYS", "DX_RAD_STARTED_DAYS", "RAD_REGIONAL_DOSE_CGY",
"RAD_BOOST_DOSE_CGY", "RAD_ELAPSED_RX_DAYS", "DX_SYSTEMIC_STARTED_DAYS", "DX_CHEMO_STARTED_DAYS",
"DX_HORMONE_STARTED_DAYS", "DX_OTHER_STARTED_DAYS", "DX_LASTCONTACT_DEATH_MONTHS",
"RAD_NUM_TREAT_VOL")
dat[num_vars] <- lapply(dat[num_vars], as.numeric)
# convert factor variables from character class to factor class
vars <- names(dat)
fact_vars <- vars[!(vars %in% num_vars)] # basically all of the non-numerics
dat[fact_vars] <- lapply(dat[fact_vars], as.character)
dat[fact_vars] <- lapply(dat[fact_vars], as.factor)
dat <- dat %>%
mutate(FACILITY_TYPE_F = fct_recode(FACILITY_TYPE_CD,
"Community Cancer Program" = "1",
"Comprehensive Comm Ca Program" = "2",
"Academic/Research Program" = "3",
"Integrated Network Ca Program" = "4",
"Other" = "9")) %>%
mutate(FACILITY_LOCATION_F = fct_recode(FACILITY_LOCATION_CD,
"New England" = "1",
"Middle Atlantic" = "2",
"South Atlantic" = "3",
"East North Central" = "4",
"East South Central" = "5",
"West North Central" = "6",
"West South Central" = "7",
"Mountain" = "8",
"Pacific" = "9",
"out of US" = "0")) %>%
mutate(FACILITY_GEOGRAPHY = fct_collapse(FACILITY_LOCATION_CD,
"Northeast" = c("1", "2"),
"South" = c("3", "7"),
"Midwest" = c("4", "5", "6"),
"West" = c("8", "9"))) %>%
mutate(AGE_F = cut(AGE, c(0, 54, 64, 74, 100))) %>%
mutate(AGE_40 = cut(AGE, c(0, 40, 100))) %>%
mutate(SEX_F = fct_recode(SEX,
"Male" = "1",
"Female" = "2")) %>%
mutate(RACE_F = fct_collapse(RACE,
"White" = c("01"),
"Black" = c("02"),
"Asian" = c("04", "05", "06", "07", "08", "10", "11", "12", "13", "14", "15",
"16", "17", "20", "21", "22", "25", "26", "27", "28", "30", "31",
"32", "96", "97"),
"Other/Unk" = c("03", "98", "99"))) %>%
mutate(HISPANIC = fct_collapse(SPANISH_HISPANIC_ORIGIN,
"Yes" = c("1", "2", "3", "4", "5", "6", "7", "8"),
"No" = c("0"),
"Unknown" = c("9"))) %>%
mutate(INSURANCE_F = fct_recode(INSURANCE_STATUS,
"None" = "0",
"Private" = "1",
"Medicaid" = "2",
"Medicare" = "3",
"Other Government" = "4",
"Unknown" = "9")) %>%
mutate(INSURANCE_F = fct_relevel(INSURANCE_F,
"Private")) %>%
mutate(INCOME_F = fct_recode(MED_INC_QUAR_12,
"Less than $38,000" = "1",
"$38,000 - $47,999" = "2",
"$48,000 - $62,999" = "3",
"$63,000 +" = "4")) %>%
mutate(EDUCATION_F = fct_recode(NO_HSD_QUAR_12,
"21% or more" = "1",
"13 - 20.9%" = "2",
"7 - 12.9%" = "3",
"Less than 7%" = "4")) %>%
mutate(U_R_F = fct_collapse(UR_CD_13,
"Metro" = c("1", "2", "3"),
"Urban" = c("4", "5", "6", "7"),
"Rural" = c("8", "9"))) %>%
mutate(CLASS_OF_CASE_F = fct_collapse(CLASS_OF_CASE,
All_Part_Prim = c("10", "11", "12", "13",
"14", "20", "21", "22"),
Other_Facility = c("00"))) %>%
mutate(GRADE_F = fct_recode(GRADE,
"Gr I: Well Diff" = "1",
"Gr II: Mod Diff" = "2",
"Gr III: Poor Diff" = "3",
"Gr IV: Undiff/Anaplastic" = "4",
"NA/Unkown" = "9")) %>%
mutate(HISTOLOGY_F = fct_infreq(HISTOLOGY)) %>%
mutate(HISTOLOGY_F = factor(HISTOLOGY_F)) %>%
mutate(HISTOLOGY_F_LIM = fct_lump(HISTOLOGY_F, prop = 0.05)) %>%
mutate(TNM_CLIN_T = fct_recode(TNM_CLIN_T,
"N_A" = "88")) %>%
mutate(TNM_CLIN_T = fct_relevel(TNM_CLIN_T,
"1")) %>%
mutate(TNM_CLIN_N = fct_recode(TNM_CLIN_N,
"N_A" = "88")) %>%
mutate(TNM_CLIN_M = fct_recode(TNM_CLIN_M,
"N_A" = "88")) %>%
mutate(TNM_PATH_T = fct_recode(TNM_PATH_T,
"N_A" = "88")) %>%
mutate(TNM_PATH_T = fct_relevel(TNM_PATH_T,
"1")) %>%
mutate(TNM_PATH_N = fct_recode(TNM_PATH_N,
"N_A" = "88")) %>%
mutate(TNM_PATH_M = fct_recode(TNM_PATH_M,
"N_A" = "88")) %>%
mutate(TNM_CLIN_STAGE_GROUP = fct_recode(TNM_CLIN_STAGE_GROUP,
"N_A" = "88")) %>%
mutate(TNM_PATH_STAGE_GROUP = fct_recode(TNM_PATH_STAGE_GROUP,
"N_A" = "88")) %>%
mutate(MARGINS = fct_recode(RX_SUMM_SURGICAL_MARGINS,
"No Residual" = "0",
"Residual, NOS" = "1",
"Microscopic Resid" = "2",
"Macroscopic Resid" = "3",
"Not evaluable" = "7",
"No surg" = "8",
"Unknown" = "9")) %>%
mutate(MARGINS_YN = fct_collapse(RX_SUMM_SURGICAL_MARGINS,
"Yes" = c("1", "2", "3"),
"No" = c("0"),
"No surg/Unk/NA" = c("7", "8", "9"))) %>%
mutate(READM_HOSP_30_DAYS_F = fct_recode(READM_HOSP_30_DAYS,
"No_Surg_or_No_Readmit" = "0",
"Unplan_Readmit_Same" = "1",
"Plan_Readmit_Same" = "2",
"PlanUnplan_Same" = "3",
"Unknown" = "4")) %>%
mutate(RX_SUMM_RADIATION_F = fct_recode(RX_SUMM_RADIATION,
"None" = "0",
"Beam Radiation" = "1",
"Radioactive Implants" = "2",
"Radioisotopes" = "3",
"Beam + Imp or Isotopes" = "4",
"Radiation, NOS" = "5",
"Unknown" = "9")) %>%
mutate(PUF_30_DAY_MORT_CD_F = fct_recode(PUF_30_DAY_MORT_CD,
"Alive_30" = "0",
"Dead_30" = "1",
"Unknown" = "9")) %>%
mutate(PUF_90_DAY_MORT_CD_F = fct_recode(PUF_90_DAY_MORT_CD,
"Alive_90" = "0",
"Dead_90" = "1",
"Unknown" = "9")) %>%
mutate(LYMPH_VASCULAR_INVASION_F = fct_recode(LYMPH_VASCULAR_INVASION,
"Neg_LymphVasc_Inv" = "0",
"Pos_LumphVasc_Inv" = "1",
"N_A" = "8",
"Unknown" = "9")) %>%
mutate(RX_HOSP_SURG_APPR_2010_F = fct_recode(RX_HOSP_SURG_APPR_2010,
"No_Surg" = "0",
"Robot_Assist" = "1",
"Robot_to_Open" = "2",
"Endo_Lap" = "3",
"Endo_Lap_to_Open" = "4",
"Open_Unknown" = "5",
"Unknown" = "9")) %>%
mutate(All = "All") %>%
mutate(All = factor(All)) %>%
mutate(REASON_FOR_NO_SURGERY_F = fct_recode(REASON_FOR_NO_SURGERY,
"Surg performed" = "0",
"Surg not recommended" = "1",
"No surg due to pt factors" = "2",
"No surg, pt died" = "5",
"Surg rec, not done" = "6",
"Surg rec, pt refused" = "7",
"Surg rec, unk if done" = "8",
"Unknown" = "9")) %>%
mutate(SURGERY_YN = ifelse(REASON_FOR_NO_SURGERY == "0",
"Yes",
ifelse(REASON_FOR_NO_SURGERY == "9",
"Ukn",
"No"))) %>%
mutate(SURG_TF = case_when(SURGERY_YN == "Yes" ~ TRUE,
SURGERY_YN == "No" ~ FALSE,
TRUE ~ NA)) %>%
mutate(REASON_FOR_NO_RADIATION_F = fct_recode(REASON_FOR_NO_RADIATION,
"Rad performed" = "0",
"Rad not recommended" = "1",
"No Rad due to pt factors" = "2",
"No Rad, pt died" = "5",
"Rad rec, not done" = "6",
"Rad rec, pt refused" = "7",
"Rad rec, unk if done" = "8",
"Unknown" = "9")) %>%
mutate(RADIATION_YN = ifelse(REASON_FOR_NO_RADIATION == "0",
"Yes",
ifelse(REASON_FOR_NO_RADIATION == "9",
NA,
"No"))) %>%
mutate(SURGRAD_SEQ_F = fct_recode(RX_SUMM_SURGRAD_SEQ,
"None or Surg or Rad" = "0",
"Rad before Surg" = "2",
"Surg before Rad" = "3",
"Rad before and after Surg" = "4",
"Intraop Rad" = "5",
"Intraop Rad plus other" = "6",
"Unknown" = "9")) %>%
mutate(SURG_RAD_SEQ = ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0",
"Surg Alone",
ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0",
"Rad Alone",
ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0",
"No Treatment",
ifelse(RX_SUMM_SURGRAD_SEQ == "2",
"Rad then Surg",
ifelse(RX_SUMM_SURGRAD_SEQ == "3",
"Surg then Rad",
ifelse(RX_SUMM_SURGRAD_SEQ == "4",
"Rad before and after Surg",
"Other"))))))) %>%
mutate(SURG_RAD_SEQ = fct_relevel(SURG_RAD_SEQ,
"Surg Alone",
"Surg then Rad",
"Rad Alone")) %>%
mutate(CHEMO_YN = fct_collapse(RX_SUMM_CHEMO,
"No" = c("00", "82", "85", "86", "87"),
"Yes" = c("01", "02", "03"),
"Ukn" = c("88", "99"))) %>%
mutate(SURG_RAD_SEQ_C = ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
"Surg, No rad, No Chemo",
ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
"Rad, No Surg, No Chemo",
ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
"No Surg, No Rad, No Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "2" & CHEMO_YN == "No",
"Rad then Surg, No Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "3" & CHEMO_YN == "No",
"Surg then Rad, No Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "4" & CHEMO_YN == "No",
"Rad before and after Surg, No Chemo",
ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
"Surg, No rad, Yes Chemo",
ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
"Rad, No Surg, Yes Chemo",
ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
"No Surg, No Rad, Yes Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "2" & CHEMO_YN == "Yes",
"Rad then Surg, Yes Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "3" & CHEMO_YN == "Yes",
"Surg then Rad, Yes Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "4" & CHEMO_YN == "Yes",
"Rad before and after Surg, Yes Chemo",
"Other"))))))))))))) %>%
mutate(SURG_RAD_SEQ_C = fct_infreq(SURG_RAD_SEQ_C)) %>%
mutate(T_SIZE = as.numeric(TUMOR_SIZE)) %>%
mutate(T_SIZE = ifelse(T_SIZE == 0,
"No Tumor",
ifelse(T_SIZE > 0 & T_SIZE < 10 | T_SIZE == 991,
"< 1 cm",
ifelse(T_SIZE >= 10 & T_SIZE < 20 | T_SIZE == 992,
"1-2 cm",
ifelse(T_SIZE >= 20 & T_SIZE < 30 | T_SIZE == 993,
"2-3 cm",
ifelse(T_SIZE >= 30 & T_SIZE < 40 | T_SIZE == 994,
"3-4 cm",
ifelse(T_SIZE >= 40 & T_SIZE < 50 | T_SIZE == 995,
"4-5 cm",
ifelse(T_SIZE >= 50 & T_SIZE < 60 | T_SIZE == 996,
"5-6 cm",
ifelse(T_SIZE >= 60 & T_SIZE <= 987 |
T_SIZE == 980 | T_SIZE == 989 |
T_SIZE == 997,
">6 cm",
ifelse(T_SIZE == 988 | T_SIZE == 999,
"NA_unk",
"Microscopic focus")))))))))) %>%
mutate(T_SIZE = factor(T_SIZE)) %>%
mutate(T_SIZE = fct_relevel(T_SIZE,
"No Tumor", "Microscopic focus", "< 1 cm", "1-2 cm", "2-3 cm", "3-4 cm",
"4-5 cm", "5-6 cm", ">6 cm", "NA_unk")) %>%
mutate(mets_at_dx = case_when(CS_METS_DX_LUNG == "1" ~ "Lung",
CS_METS_DX_BONE == "1" ~ "Bone",
CS_METS_DX_BRAIN == "1" ~ "Brain",
CS_METS_DX_LIVER == "1" ~ "Liver",
TRUE ~ "None/Other/Unk/NA")) %>%
mutate(MEDICAID_EXPN_CODE = fct_recode(MEDICAID_EXPN_CODE,
"Non-Expansion State" = "0",
"Jan 2014 Expansion States" = "1",
"Early Expansion States (2010-13)" = "2",
"Late Expansion States (> Jan 2014)" = "3",
"Suppressed for Ages 0 - 39" = "9")) %>%
mutate(EXPN_GROUP = case_when(MEDICAID_EXPN_CODE %in% c("Jan 2014 Expansion States") &
YEAR_OF_DIAGNOSIS %in% c("2014", "2015") ~ "Post-Expansion",
MEDICAID_EXPN_CODE %in% c("Jan 2014 Expansion States") &
YEAR_OF_DIAGNOSIS %in%
c("2004", "2005", "2006", "2007", "2008",
"2009", "2010", "2011", "2012", "2013") ~ "Pre-Expansion",
MEDICAID_EXPN_CODE %in% c("Early Expansion States (2010-13)") &
YEAR_OF_DIAGNOSIS %in% c("2010", "2011", "2012", "2013", "2014", "2015") ~ "Post-Expansion",
MEDICAID_EXPN_CODE %in% c("Early Expansion States (2010-13)") &
YEAR_OF_DIAGNOSIS %in% c("2004", "2005", "2006", "2007", "2008", "2009") ~ "Pre-Expansion",
MEDICAID_EXPN_CODE %in% c("Non-Expansion State") ~ "Pre-Expansion",
MEDICAID_EXPN_CODE %in% c("Late Expansion States (> Jan 2014)") ~ "Pre-Expansion",
MEDICAID_EXPN_CODE %in% c("Late Expansion States (> Jan 2014)") &
YEAR_OF_DIAGNOSIS %in% c("2014", "2015") ~ "Exclude",
MEDICAID_EXPN_CODE == "Suppressed for Ages 0 - 39" ~ "Exclude")) %>%
mutate(pre_2014 = YEAR_OF_DIAGNOSIS %in% c("2004", "2005", "2006", "2007", "2008",
"2009", "2010", "2011", "2012", "2013")) %>%
mutate(mets_at_dx_F = ifelse(mets_at_dx == "None/Other/Unk/NA", FALSE, TRUE)) %>%
mutate(Tx_YN = ifelse(SURG_RAD_SEQ == "No Treatment" & CHEMO_YN == "No", FALSE,
ifelse(CHEMO_YN == "Ukn", NA,
TRUE)))
fact_vars_2 <- c("FACILITY_TYPE_F", "FACILITY_LOCATION_F", "AGE_F", "SEX_F", "RACE_F",
"HISPANIC", "INSURANCE_F", "INCOME_F", "EDUCATION_F", "U_R_F",
"CDCC_TOTAL_BEST", "CLASS_OF_CASE_F", "YEAR_OF_DIAGNOSIS", "PRIMARY_SITE", "HISTOLOGY",
"BEHAVIOR", "GRADE_F", "TNM_CLIN_T", "TNM_CLIN_N", "TNM_CLIN_M",
"TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M", "TNM_PATH_STAGE_GROUP",
"MARGINS", "READM_HOSP_30_DAYS_F", "RX_SUMM_RADIATION_F", "PUF_30_DAY_MORT_CD_F",
"PUF_90_DAY_MORT_CD_F", "LYMPH_VASCULAR_INVASION_F", "RX_HOSP_SURG_APPR_2010_F", "mets_at_dx")
dat <- dat %>%
mutate_at(fact_vars_2, funs(factor(.)))
functions
p_table <- function(tab_data, ...) {
tab_data_2 <- deparse(substitute(tab_data))
table_p <- do.call(CreateTableOne,
list(data = as.name(tab_data_2), includeNA = TRUE, ...))
table_p_out <- print(table_p,
showAllLevels = TRUE,
printToggle = FALSE)
kable(table_p_out,
align = "c")
}
uni_var <- function(test_var, data_imp) {
cat("_________________________________________________")
cat("\n")
cat(" \n##", test_var)
cat("\n")
cat("_________________________________________________")
cat("\n")
f <- as.formula(paste("Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 0)",
as.name(test_var),
sep = " ~ " ))
data_imp_2 <- deparse(substitute(data_imp))
km_fit <- do.call("survfit", list(formula = f, data = as.name(data_imp_2)))
print(km_fit)
cat("\n")
print(summary(km_fit, times = c(12, 24, 36, 48, 60, 120)))
cat("\n")
cat("\n")
cat("\n")
cat(" \n## Univariable Cox Proportional Hazard Model for: ", test_var)
cat("\n")
cat("\n")
n_levels <- nlevels(data_imp[[test_var]])
if(n_levels == 1){
print("Only one level, no Cox model performed")
cat("\n")
} else {
cox_fit <- do.call("coxph", list(formula = f, data = as.name(data_imp_2)))
print(summary(cox_fit))
cat("\n")
do.call("ggforest",
list(model = cox_fit, data = as.name(data_imp_2)))
}
cat("\n")
cat("\n")
cat("\n")
cat(" \n## Unadjusted Kaplan Meier Overall Survival Curve for: ", test_var)
p <- do.call("ggsurvplot",
list(fit = km_fit, data = as.name(data_imp_2),
palette = "jco", censor = FALSE, legend = "right",
linetype = "strata", xlab = "Time (Months)"))
print(p)
}
Kaplan Meier Analysis
All
uni_var(test_var = "All", data_imp = data)
_________________________________________________
## All
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ All, data = data)
n events median 0.95LCL 0.95UCL
362910 89972 164 162 165
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ All, data = data)
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 304157 21947 0.936 0.000417 0.935 0.937
24 261059 17623 0.880 0.000569 0.879 0.881
36 216079 13651 0.831 0.000675 0.829 0.832
48 178134 9949 0.790 0.000757 0.788 0.791
60 144302 7410 0.754 0.000828 0.752 0.756
120 34572 17189 0.613 0.001249 0.610 0.615
## Univariable Cox Proportional Hazard Model for: All
[1] "Only one level, no Cox model performed"
## Unadjusted Kaplan Meier Overall Survival Curve for: All



Facility Type
uni_var(test_var = "FACILITY_TYPE_F", data_imp = data)
_________________________________________________
## FACILITY_TYPE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_TYPE_F, data = data)
41837 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
FACILITY_TYPE_F=Community Cancer Program 20025 6627 126 122 132
FACILITY_TYPE_F=Comprehensive Comm Ca Program 114916 34156 144 142 146
FACILITY_TYPE_F=Academic/Research Program 147602 35238 162 158 NA
FACILITY_TYPE_F=Integrated Network Ca Program 38530 10808 147 143 152
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_TYPE_F, data = data)
41837 observations deleted due to missingness
FACILITY_TYPE_F=Community Cancer Program
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 16242 1969 0.897 0.00221 0.892 0.901
24 13658 1293 0.823 0.00283 0.817 0.828
36 11147 946 0.762 0.00323 0.756 0.768
48 9167 668 0.713 0.00354 0.707 0.720
60 7352 502 0.671 0.00380 0.664 0.679
120 1706 1106 0.515 0.00535 0.504 0.525
FACILITY_TYPE_F=Comprehensive Comm Ca Program
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 95753 8748 0.920 0.000818 0.919 0.922
24 81903 6518 0.855 0.001087 0.853 0.857
36 67972 4953 0.800 0.001267 0.798 0.803
48 56271 3728 0.754 0.001406 0.751 0.756
60 46023 2747 0.714 0.001522 0.711 0.717
120 11044 6556 0.558 0.002195 0.553 0.562
FACILITY_TYPE_F=Academic/Research Program
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 123953 7681 0.945 0.000613 0.944 0.946
24 105844 7140 0.888 0.000870 0.886 0.890
36 86436 5624 0.837 0.001051 0.835 0.839
48 70096 4059 0.795 0.001191 0.793 0.797
60 55804 3049 0.757 0.001317 0.755 0.760
120 12528 6853 0.606 0.002069 0.602 0.610
FACILITY_TYPE_F=Integrated Network Ca Program
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 32077 2792 0.924 0.00139 0.921 0.927
24 27452 2016 0.863 0.00184 0.860 0.867
36 22620 1625 0.809 0.00216 0.805 0.813
48 18519 1144 0.765 0.00240 0.760 0.770
60 14948 840 0.727 0.00261 0.722 0.733
120 3461 2119 0.567 0.00391 0.559 0.575
## Univariable Cox Proportional Hazard Model for: FACILITY_TYPE_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_TYPE_F, data = data)
n= 321073, number of events= 86829
(41837 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
FACILITY_TYPE_FComprehensive Comm Ca Program -0.16443 0.84837 0.01342 -12.25 <2e-16 ***
FACILITY_TYPE_FAcademic/Research Program -0.35814 0.69898 0.01339 -26.75 <2e-16 ***
FACILITY_TYPE_FIntegrated Network Ca Program -0.20659 0.81336 0.01560 -13.24 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
FACILITY_TYPE_FComprehensive Comm Ca Program 0.8484 1.179 0.8263 0.8710
FACILITY_TYPE_FAcademic/Research Program 0.6990 1.431 0.6809 0.7176
FACILITY_TYPE_FIntegrated Network Ca Program 0.8134 1.229 0.7889 0.8386
Concordance= 0.535 (se = 0.001 )
Rsquare= 0.003 (max possible= 0.999 )
Likelihood ratio test= 1066 on 3 df, p=0
Wald test = 1079 on 3 df, p=0
Score (logrank) test = 1085 on 3 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: FACILITY_TYPE_F



Facility Location
uni_var(test_var = "FACILITY_LOCATION_F", data_imp = data)
_________________________________________________
## FACILITY_LOCATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_LOCATION_F, data = data)
41837 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
FACILITY_LOCATION_F=New England 21270 5637 147 144 156
FACILITY_LOCATION_F=Middle Atlantic 52367 13264 154 150 157
FACILITY_LOCATION_F=South Atlantic 72796 20410 144 142 148
FACILITY_LOCATION_F=East North Central 53630 14618 151 149 155
FACILITY_LOCATION_F=East South Central 21009 6492 136 131 140
FACILITY_LOCATION_F=West North Central 27272 6879 157 151 NA
FACILITY_LOCATION_F=West South Central 16025 4815 146 139 153
FACILITY_LOCATION_F=Mountain 17133 4508 153 148 161
FACILITY_LOCATION_F=Pacific 39571 10206 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_LOCATION_F, data = data)
41837 observations deleted due to missingness
FACILITY_LOCATION_F=New England
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 17981 1277 0.937 0.00171 0.934 0.940
24 15509 1065 0.879 0.00235 0.875 0.884
36 12846 877 0.826 0.00281 0.821 0.832
48 10594 601 0.785 0.00313 0.779 0.791
60 8434 492 0.745 0.00345 0.739 0.752
120 1929 1149 0.581 0.00537 0.571 0.592
FACILITY_LOCATION_F=Middle Atlantic
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 44645 3196 0.936 0.00110 0.934 0.938
24 37929 2675 0.877 0.00150 0.874 0.880
36 30808 2040 0.827 0.00179 0.823 0.830
48 24591 1549 0.781 0.00203 0.778 0.785
60 19240 1080 0.744 0.00223 0.739 0.748
120 3694 2426 0.586 0.00363 0.578 0.593
FACILITY_LOCATION_F=South Atlantic
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 60080 4784 0.931 0.00097 0.929 0.932
24 51140 3921 0.867 0.00133 0.865 0.870
36 42412 3076 0.812 0.00158 0.809 0.815
48 34971 2301 0.765 0.00176 0.761 0.768
60 28464 1687 0.725 0.00192 0.721 0.729
120 6770 4105 0.564 0.00283 0.558 0.569
FACILITY_LOCATION_F=East North Central
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 44891 3581 0.930 0.00113 0.928 0.932
24 38367 2827 0.869 0.00153 0.866 0.872
36 31453 2229 0.815 0.00181 0.811 0.819
48 25729 1592 0.771 0.00203 0.767 0.775
60 20748 1195 0.732 0.00222 0.728 0.736
120 4963 2833 0.577 0.00328 0.571 0.584
FACILITY_LOCATION_F=East South Central
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 17689 1576 0.922 0.00190 0.918 0.925
24 14959 1312 0.851 0.00257 0.846 0.856
36 12339 969 0.792 0.00300 0.786 0.798
48 10142 722 0.743 0.00333 0.736 0.749
60 8140 527 0.701 0.00361 0.694 0.708
120 1873 1217 0.537 0.00528 0.526 0.547
FACILITY_LOCATION_F=West North Central
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 22526 1684 0.934 0.00155 0.931 0.937
24 19360 1304 0.878 0.00210 0.874 0.882
36 15791 1092 0.825 0.00251 0.820 0.830
48 12855 751 0.783 0.00282 0.777 0.788
60 10288 580 0.744 0.00310 0.738 0.750
120 2307 1297 0.594 0.00476 0.585 0.603
FACILITY_LOCATION_F=West South Central
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 13328 1417 0.908 0.00234 0.903 0.912
24 11177 962 0.839 0.00303 0.833 0.845
36 9198 685 0.784 0.00348 0.778 0.791
48 7559 501 0.739 0.00384 0.731 0.746
60 6099 389 0.698 0.00415 0.690 0.706
120 1195 781 0.552 0.00610 0.540 0.564
FACILITY_LOCATION_F=Mountain
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 14210 1161 0.928 0.00202 0.925 0.932
24 12205 861 0.870 0.00271 0.865 0.875
36 10058 666 0.819 0.00318 0.813 0.826
48 8267 494 0.776 0.00356 0.769 0.783
60 6834 341 0.742 0.00386 0.734 0.749
120 1644 849 0.593 0.00586 0.582 0.605
FACILITY_LOCATION_F=Pacific
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 32675 2514 0.933 0.00129 0.931 0.936
24 28211 2040 0.873 0.00177 0.869 0.876
36 23270 1514 0.822 0.00209 0.818 0.827
48 19345 1088 0.781 0.00233 0.777 0.786
60 15880 847 0.744 0.00254 0.740 0.749
120 4364 1977 0.606 0.00364 0.599 0.613
## Univariable Cox Proportional Hazard Model for: FACILITY_LOCATION_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_LOCATION_F, data = data)
n= 321073, number of events= 86829
(41837 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
FACILITY_LOCATION_FMiddle Atlantic -0.0018090 0.9981926 0.0159011 -0.114 0.90942
FACILITY_LOCATION_FSouth Atlantic 0.0745691 1.0774198 0.0150466 4.956 7.2e-07 ***
FACILITY_LOCATION_FEast North Central 0.0430144 1.0439529 0.0156783 2.744 0.00608 **
FACILITY_LOCATION_FEast South Central 0.1684812 1.1835059 0.0182054 9.254 < 2e-16 ***
FACILITY_LOCATION_FWest North Central -0.0144924 0.9856121 0.0179659 -0.807 0.41986
FACILITY_LOCATION_FWest South Central 0.1737202 1.1897227 0.0196242 8.852 < 2e-16 ***
FACILITY_LOCATION_FMountain -0.0008789 0.9991215 0.0199809 -0.044 0.96492
FACILITY_LOCATION_FPacific -0.0363362 0.9643160 0.0165960 -2.189 0.02856 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
FACILITY_LOCATION_FMiddle Atlantic 0.9982 1.0018 0.9676 1.0298
FACILITY_LOCATION_FSouth Atlantic 1.0774 0.9281 1.0461 1.1097
FACILITY_LOCATION_FEast North Central 1.0440 0.9579 1.0124 1.0765
FACILITY_LOCATION_FEast South Central 1.1835 0.8449 1.1420 1.2265
FACILITY_LOCATION_FWest North Central 0.9856 1.0146 0.9515 1.0209
FACILITY_LOCATION_FWest South Central 1.1897 0.8405 1.1448 1.2364
FACILITY_LOCATION_FMountain 0.9991 1.0009 0.9608 1.0390
FACILITY_LOCATION_FPacific 0.9643 1.0370 0.9335 0.9962
Concordance= 0.517 (se = 0.001 )
Rsquare= 0.001 (max possible= 0.999 )
Likelihood ratio test= 331.4 on 8 df, p=0
Wald test = 337.3 on 8 df, p=0
Score (logrank) test = 337.9 on 8 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: FACILITY_LOCATION_F



Facility Geography
uni_var(test_var = "FACILITY_GEOGRAPHY", data_imp = data)
_________________________________________________
## FACILITY_GEOGRAPHY
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_GEOGRAPHY, data = data)
41837 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
FACILITY_GEOGRAPHY=Northeast 73637 18901 153 147 156
FACILITY_GEOGRAPHY=South 88821 25225 144 142 148
FACILITY_GEOGRAPHY=Midwest 101911 27989 149 146 151
FACILITY_GEOGRAPHY=West 56704 14714 NA 161 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_GEOGRAPHY, data = data)
41837 observations deleted due to missingness
FACILITY_GEOGRAPHY=Northeast
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 62626 4473 0.936 0.000923 0.934 0.938
24 53438 3740 0.878 0.001266 0.876 0.880
36 43654 2917 0.827 0.001508 0.824 0.830
48 35185 2150 0.783 0.001702 0.779 0.786
60 27674 1572 0.744 0.001875 0.741 0.748
120 5623 3575 0.584 0.003008 0.578 0.590
FACILITY_GEOGRAPHY=South
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 73408 6201 0.926 0.000901 0.925 0.928
24 62317 4883 0.862 0.001222 0.860 0.864
36 51610 3761 0.807 0.001438 0.804 0.810
48 42530 2802 0.760 0.001604 0.757 0.763
60 34563 2076 0.720 0.001743 0.717 0.724
120 7965 4886 0.561 0.002568 0.556 0.566
FACILITY_GEOGRAPHY=Midwest
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 85106 6841 0.929 0.000825 0.928 0.931
24 72686 5443 0.868 0.001118 0.865 0.870
36 59583 4290 0.813 0.001323 0.810 0.815
48 48726 3065 0.768 0.001478 0.765 0.771
60 39176 2302 0.729 0.001615 0.725 0.732
120 9143 5347 0.573 0.002409 0.568 0.578
FACILITY_GEOGRAPHY=West
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 46885 3675 0.932 0.00109 0.930 0.934
24 40416 2901 0.872 0.00148 0.869 0.875
36 33328 2180 0.822 0.00175 0.818 0.825
48 27612 1582 0.780 0.00195 0.776 0.784
60 22714 1188 0.744 0.00212 0.740 0.748
120 6008 2826 0.602 0.00309 0.596 0.608
## Univariable Cox Proportional Hazard Model for: FACILITY_GEOGRAPHY
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_GEOGRAPHY, data = data)
n= 321073, number of events= 86829
(41837 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
FACILITY_GEOGRAPHYSouth 0.094031 1.098594 0.009622 9.772 < 2e-16 ***
FACILITY_GEOGRAPHYMidwest 0.057178 1.058844 0.009416 6.072 1.26e-09 ***
FACILITY_GEOGRAPHYWest -0.024315 0.975978 0.010999 -2.211 0.0271 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
FACILITY_GEOGRAPHYSouth 1.099 0.9103 1.0781 1.1195
FACILITY_GEOGRAPHYMidwest 1.059 0.9444 1.0395 1.0786
FACILITY_GEOGRAPHYWest 0.976 1.0246 0.9552 0.9972
Concordance= 0.512 (se = 0.001 )
Rsquare= 0.001 (max possible= 0.999 )
Likelihood ratio test= 173.3 on 3 df, p=0
Wald test = 172.8 on 3 df, p=0
Score (logrank) test = 172.9 on 3 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: FACILITY_GEOGRAPHY



Age Group
uni_var(test_var = "AGE_F", data_imp = data)
_________________________________________________
## AGE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_F, data = data)
34 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
AGE_F=(0,54] 123853 13264 NA NA NA
AGE_F=(54,64] 79330 13732 NA NA NA
AGE_F=(64,74] 76938 20008 139.4 138.0 141.9
AGE_F=(74,100] 82755 42964 59.7 59.1 60.4
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_F, data = data)
34 observations deleted due to missingness
AGE_F=(0,54]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 106374 3468 0.970 0.000498 0.969 0.971
24 94556 2739 0.944 0.000690 0.943 0.946
36 81723 2031 0.923 0.000823 0.921 0.924
48 70239 1454 0.905 0.000927 0.903 0.907
60 59008 1047 0.891 0.001015 0.889 0.893
120 16859 2249 0.839 0.001483 0.836 0.842
AGE_F=(54,64]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 66772 3653 0.951 0.000786 0.950 0.953
24 58185 2649 0.912 0.001064 0.910 0.914
36 48718 2102 0.877 0.001271 0.874 0.879
48 40530 1456 0.849 0.001429 0.846 0.851
60 33238 1023 0.825 0.001564 0.822 0.828
120 8217 2499 0.725 0.002443 0.721 0.730
AGE_F=(64,74]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 64339 4647 0.936 0.000904 0.935 0.938
24 55056 3600 0.882 0.001228 0.879 0.884
36 44903 2968 0.831 0.001472 0.828 0.834
48 36459 2189 0.787 0.001666 0.784 0.790
60 28999 1618 0.749 0.001837 0.745 0.752
120 6181 4296 0.565 0.003012 0.559 0.571
AGE_F=(74,100]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 66647 10178 0.872 0.00119 0.870 0.874
24 53243 8634 0.755 0.00156 0.752 0.758
36 40718 6549 0.656 0.00177 0.653 0.660
48 30892 4850 0.572 0.00191 0.569 0.576
60 23046 3721 0.498 0.00202 0.494 0.502
120 3310 8145 0.229 0.00247 0.225 0.234
## Univariable Cox Proportional Hazard Model for: AGE_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_F, data = data)
n= 362876, number of events= 89968
(34 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
AGE_F(54,64] 0.570757 1.769606 0.012178 46.87 <2e-16 ***
AGE_F(64,74] 1.044519 2.842031 0.011211 93.17 <2e-16 ***
AGE_F(74,100] 1.915597 6.790994 0.009999 191.59 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
AGE_F(54,64] 1.770 0.5651 1.728 1.812
AGE_F(64,74] 2.842 0.3519 2.780 2.905
AGE_F(74,100] 6.791 0.1473 6.659 6.925
Concordance= 0.68 (se = 0.001 )
Rsquare= 0.125 (max possible= 0.998 )
Likelihood ratio test= 48267 on 3 df, p=0
Wald test = 46114 on 3 df, p=0
Score (logrank) test = 56187 on 3 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: AGE_F



Age Group
uni_var(test_var = "AGE_40", data_imp = data)
_________________________________________________
## AGE_40
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_40, data = data)
34 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
AGE_40=(0,40] 45430 3484 NA NA NA
AGE_40=(40,100] 317446 86484 150 149 152
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_40, data = data)
34 observations deleted due to missingness
AGE_40=(0,40]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 39270 846 0.980 0.000677 0.979 0.981
24 34993 735 0.961 0.000965 0.959 0.963
36 30341 544 0.945 0.001165 0.943 0.947
48 26165 400 0.932 0.001325 0.929 0.934
60 21941 292 0.921 0.001462 0.918 0.923
120 6350 612 0.881 0.002175 0.877 0.885
AGE_40=(40,100]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 264862 21100 0.930 0.000465 0.929 0.931
24 226047 16887 0.868 0.000632 0.867 0.870
36 185721 13106 0.815 0.000748 0.813 0.816
48 151955 9549 0.770 0.000836 0.768 0.771
60 122350 7117 0.731 0.000914 0.729 0.732
120 28217 16577 0.574 0.001372 0.572 0.577
## Univariable Cox Proportional Hazard Model for: AGE_40
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_40, data = data)
n= 362876, number of events= 89968
(34 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
AGE_40(40,100] 1.41156 4.10235 0.01729 81.66 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
AGE_40(40,100] 4.102 0.2438 3.966 4.244
Concordance= 0.548 (se = 0.001 )
Rsquare= 0.029 (max possible= 0.998 )
Likelihood ratio test= 10562 on 1 df, p=0
Wald test = 6669 on 1 df, p=0
Score (logrank) test = 7851 on 1 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: AGE_40



Gender
uni_var(test_var = "SEX_F", data_imp = data)
_________________________________________________
## SEX_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SEX_F, data = data)
n events median 0.95LCL 0.95UCL
SEX_F=Male 207765 60900 140 139 142
SEX_F=Female 155145 29072 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SEX_F, data = data)
SEX_F=Male
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 172446 14990 0.924 0.000597 0.923 0.925
24 146109 12112 0.856 0.000810 0.855 0.858
36 119424 9256 0.799 0.000954 0.797 0.800
48 97169 6775 0.750 0.001063 0.748 0.752
60 77841 5036 0.708 0.001158 0.706 0.710
120 17787 11370 0.546 0.001703 0.542 0.549
SEX_F=Female
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 131711 6957 0.953 0.000555 0.952 0.954
24 114950 5511 0.911 0.000763 0.910 0.913
36 96655 4395 0.874 0.000915 0.872 0.876
48 80965 3174 0.843 0.001033 0.841 0.845
60 66461 2374 0.816 0.001138 0.814 0.819
120 16785 5819 0.703 0.001777 0.700 0.707
## Univariable Cox Proportional Hazard Model for: SEX_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SEX_F, data = data)
n= 362910, number of events= 89972
coef exp(coef) se(coef) z Pr(>|z|)
SEX_FFemale -0.527427 0.590122 0.007132 -73.95 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SEX_FFemale 0.5901 1.695 0.5819 0.5984
Concordance= 0.561 (se = 0.001 )
Rsquare= 0.016 (max possible= 0.998 )
Likelihood ratio test= 5762 on 1 df, p=0
Wald test = 5469 on 1 df, p=0
Score (logrank) test = 5597 on 1 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: SEX_F



RACE_F
uni_var(test_var = "RACE_F", data_imp = data)
_________________________________________________
## RACE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RACE_F, data = data)
n events median 0.95LCL 0.95UCL
RACE_F=White 353647 87552 164.4 161.8 165
RACE_F=Black 2116 907 73.1 65.5 84
RACE_F=Other/Unk 6088 1213 NA NA NA
RACE_F=Asian 1059 300 NA 141.8 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RACE_F, data = data)
RACE_F=White
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 296701 21227 0.937 0.000421 0.936 0.938
24 254717 17131 0.880 0.000575 0.879 0.882
36 210851 13290 0.831 0.000683 0.830 0.833
48 173829 9704 0.790 0.000766 0.789 0.792
60 140792 7222 0.755 0.000838 0.753 0.756
120 33608 16816 0.613 0.001267 0.610 0.615
RACE_F=Black
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1583 341 0.831 0.00835 0.815 0.848
24 1291 170 0.739 0.00999 0.720 0.759
36 1016 125 0.663 0.01105 0.641 0.685
48 789 89 0.601 0.01182 0.578 0.624
60 601 68 0.545 0.01251 0.521 0.570
120 132 102 0.409 0.01570 0.379 0.441
RACE_F=Other/Unk
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 5045 278 0.951 0.00288 0.945 0.956
24 4376 251 0.901 0.00409 0.893 0.909
36 3680 188 0.860 0.00489 0.850 0.870
48 3110 123 0.829 0.00545 0.819 0.840
60 2594 103 0.800 0.00598 0.788 0.812
120 749 245 0.689 0.00864 0.672 0.706
RACE_F=Asian
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 828 101 0.898 0.00962 0.880 0.917
24 675 71 0.817 0.01270 0.793 0.842
36 532 48 0.754 0.01465 0.726 0.783
48 406 33 0.702 0.01620 0.671 0.734
60 315 17 0.670 0.01723 0.637 0.704
120 83 26 0.585 0.02227 0.543 0.630
## Univariable Cox Proportional Hazard Model for: RACE_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RACE_F, data = data)
n= 362910, number of events= 89972
coef exp(coef) se(coef) z Pr(>|z|)
RACE_FBlack 0.75331 2.12402 0.03338 22.569 < 2e-16 ***
RACE_FOther/Unk -0.25173 0.77745 0.02891 -8.707 < 2e-16 ***
RACE_FAsian 0.28409 1.32855 0.05783 4.912 9.01e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
RACE_FBlack 2.1240 0.4708 1.9895 2.2676
RACE_FOther/Unk 0.7775 1.2862 0.7346 0.8228
RACE_FAsian 1.3285 0.7527 1.1862 1.4880
Concordance= 0.505 (se = 0 )
Rsquare= 0.001 (max possible= 0.998 )
Likelihood ratio test= 511.8 on 3 df, p=0
Wald test = 613.3 on 3 df, p=0
Score (logrank) test = 639 on 3 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: RACE_F



Hispanic
uni_var(test_var = "HISPANIC", data_imp = data)
_________________________________________________
## HISPANIC
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ HISPANIC, data = data)
n events median 0.95LCL 0.95UCL
HISPANIC=No 338276 83282 163 162 165
HISPANIC=Yes 5052 1341 NA 145 NA
HISPANIC=Unknown 19582 5349 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ HISPANIC, data = data)
HISPANIC=No
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 283450 20334 0.937 0.000431 0.936 0.937
24 242887 16388 0.880 0.000589 0.879 0.881
36 200359 12724 0.831 0.000700 0.830 0.832
48 164465 9264 0.790 0.000786 0.788 0.791
60 132607 6841 0.754 0.000861 0.752 0.756
120 31127 15746 0.612 0.001309 0.609 0.614
HISPANIC=Yes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4050 420 0.912 0.00413 0.903 0.920
24 3338 303 0.840 0.00549 0.829 0.851
36 2681 199 0.786 0.00634 0.773 0.798
48 2162 134 0.743 0.00698 0.730 0.757
60 1709 90 0.709 0.00753 0.695 0.724
120 362 174 0.595 0.01064 0.575 0.616
HISPANIC=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 16657 1193 0.936 0.00179 0.933 0.940
24 14834 932 0.882 0.00241 0.878 0.887
36 13039 728 0.837 0.00280 0.832 0.843
48 11507 551 0.800 0.00309 0.794 0.806
60 9986 479 0.765 0.00334 0.759 0.772
120 3083 1269 0.629 0.00458 0.620 0.638
## Univariable Cox Proportional Hazard Model for: HISPANIC
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ HISPANIC, data = data)
n= 362910, number of events= 89972
coef exp(coef) se(coef) z Pr(>|z|)
HISPANICYes 0.17257 1.18835 0.02753 6.269 3.64e-10 ***
HISPANICUnknown -0.05147 0.94983 0.01412 -3.646 0.000266 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
HISPANICYes 1.1883 0.8415 1.1259 1.2542
HISPANICUnknown 0.9498 1.0528 0.9239 0.9765
Concordance= 0.503 (se = 0 )
Rsquare= 0 (max possible= 0.998 )
Likelihood ratio test= 52.05 on 2 df, p=4.972e-12
Wald test = 54.04 on 2 df, p=1.84e-12
Score (logrank) test = 54.15 on 2 df, p=1.741e-12
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: HISPANIC



Insurance Status
uni_var(test_var = "INSURANCE_F", data_imp = data)
_________________________________________________
## INSURANCE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ INSURANCE_F, data = data)
n events median 0.95LCL 0.95UCL
INSURANCE_F=Private 196431 26154 NA NA NA
INSURANCE_F=None 8903 2462 165.2 165 NA
INSURANCE_F=Medicaid 9359 2921 139.3 127 150.7
INSURANCE_F=Medicare 144437 57598 86.8 86 87.6
INSURANCE_F=Other Government 3780 837 160.3 160 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ INSURANCE_F, data = data)
INSURANCE_F=Private
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 168550 5841 0.968 0.000407 0.968 0.969
24 149287 5097 0.938 0.000577 0.937 0.939
36 127672 4149 0.910 0.000703 0.909 0.912
48 108390 2942 0.888 0.000798 0.886 0.889
60 90243 2240 0.868 0.000883 0.866 0.870
120 24426 5180 0.790 0.001370 0.787 0.792
INSURANCE_F=None
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7020 885 0.895 0.00335 0.888 0.901
24 5936 498 0.829 0.00422 0.820 0.837
36 4958 357 0.776 0.00478 0.767 0.786
48 4101 250 0.735 0.00520 0.724 0.745
60 3264 141 0.707 0.00550 0.696 0.718
120 777 302 0.604 0.00757 0.589 0.619
INSURANCE_F=Medicaid
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7089 1207 0.863 0.00366 0.856 0.871
24 5580 624 0.783 0.00452 0.774 0.792
36 4214 372 0.726 0.00508 0.716 0.736
48 3298 240 0.680 0.00555 0.669 0.691
60 2551 145 0.647 0.00592 0.636 0.659
120 552 301 0.528 0.00837 0.512 0.544
INSURANCE_F=Medicare
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 118458 13738 0.901 0.000806 0.899 0.902
24 97750 11209 0.812 0.001077 0.810 0.814
36 77222 8653 0.735 0.001253 0.733 0.738
48 60748 6438 0.669 0.001385 0.667 0.672
60 46997 4839 0.611 0.001496 0.608 0.614
120 8575 11291 0.379 0.002129 0.375 0.383
INSURANCE_F=Other Government
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3040 276 0.922 0.00453 0.913 0.931
24 2506 195 0.859 0.00605 0.847 0.871
36 2013 120 0.815 0.00698 0.801 0.828
48 1597 79 0.780 0.00771 0.765 0.795
60 1247 45 0.755 0.00828 0.739 0.772
120 242 115 0.637 0.01336 0.611 0.663
## Univariable Cox Proportional Hazard Model for: INSURANCE_F
X matrix deemed to be singular; variable 5
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ INSURANCE_F, data = data)
n= 362910, number of events= 89972
coef exp(coef) se(coef) z Pr(>|z|)
INSURANCE_FNone 0.897310 2.452997 0.021084 42.56 <2e-16 ***
INSURANCE_FMedicaid 1.179156 3.251627 0.019523 60.40 <2e-16 ***
INSURANCE_FMedicare 1.313677 3.719828 0.007489 175.40 <2e-16 ***
INSURANCE_FOther Government 0.727012 2.068889 0.035119 20.70 <2e-16 ***
INSURANCE_FUnknown NA NA 0.000000 NA NA
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
INSURANCE_FNone 2.453 0.4077 2.354 2.556
INSURANCE_FMedicaid 3.252 0.3075 3.130 3.378
INSURANCE_FMedicare 3.720 0.2688 3.666 3.775
INSURANCE_FOther Government 2.069 0.4834 1.931 2.216
INSURANCE_FUnknown NA NA NA NA
Concordance= 0.647 (se = 0.001 )
Rsquare= 0.091 (max possible= 0.998 )
Likelihood ratio test= 34566 on 4 df, p=0
Wald test = 31004 on 4 df, p=0
Score (logrank) test = 35429 on 4 df, p=0
Removed 2 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: INSURANCE_F



Overall Survival pre/post-ACA expansion
uni_var(test_var = "EXPN_GROUP", data_imp = no_Excludes)
_________________________________________________
## EXPN_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EXPN_GROUP, data = no_Excludes)
n events median 0.95LCL 0.95UCL
EXPN_GROUP=Post-Expansion 57862 10046 NA NA NA
EXPN_GROUP=Pre-Expansion 278211 84641 147 146 149
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EXPN_GROUP, data = no_Excludes)
EXPN_GROUP=Post-Expansion
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 45462 3817 0.929 0.00111 0.927 0.931
24 33837 2728 0.868 0.00154 0.865 0.871
36 20120 1681 0.815 0.00192 0.811 0.818
48 11866 896 0.769 0.00236 0.764 0.773
60 7412 497 0.729 0.00283 0.724 0.735
EXPN_GROUP=Pre-Expansion
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 233209 20815 0.922 0.000522 0.921 0.923
24 202961 16126 0.856 0.000695 0.855 0.857
36 174188 12427 0.801 0.000806 0.800 0.803
48 147051 9219 0.757 0.000885 0.755 0.758
60 120495 6991 0.718 0.000953 0.716 0.720
120 29573 16837 0.566 0.001353 0.563 0.568
## Univariable Cox Proportional Hazard Model for: EXPN_GROUP
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EXPN_GROUP, data = no_Excludes)
n= 336073, number of events= 94687
coef exp(coef) se(coef) z Pr(>|z|)
EXPN_GROUPPre-Expansion 0.06250 1.06449 0.01072 5.828 5.61e-09 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
EXPN_GROUPPre-Expansion 1.064 0.9394 1.042 1.087
Concordance= 0.504 (se = 0.001 )
Rsquare= 0 (max possible= 0.999 )
Likelihood ratio test= 34.49 on 1 df, p=4.286e-09
Wald test = 33.97 on 1 df, p=5.607e-09
Score (logrank) test = 33.98 on 1 df, p=5.576e-09
## Unadjusted Kaplan Meier Overall Survival Curve for: EXPN_GROUP



Education
uni_var(test_var = "EDUCATION_F", data_imp = data)
_________________________________________________
## EDUCATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EDUCATION_F, data = data)
1490 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
EDUCATION_F=21% or more 36157 11317 139 134 142
EDUCATION_F=13 - 20.9% 77301 21594 151 147 154
EDUCATION_F=7 - 12.9% 126598 31601 162 161 NA
EDUCATION_F=Less than 7% 121364 25137 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EDUCATION_F, data = data)
1490 observations deleted due to missingness
EDUCATION_F=21% or more
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 29746 3036 0.912 0.00153 0.909 0.915
24 25060 2349 0.837 0.00204 0.833 0.841
36 20505 1695 0.777 0.00236 0.772 0.782
48 16928 1209 0.728 0.00260 0.723 0.733
60 13674 884 0.687 0.00279 0.682 0.693
120 3213 1892 0.540 0.00392 0.533 0.548
EDUCATION_F=13 - 20.9%
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 64315 5467 0.926 0.000969 0.924 0.927
24 54669 4263 0.862 0.001306 0.859 0.864
36 44993 3213 0.808 0.001533 0.805 0.811
48 36957 2354 0.763 0.001708 0.759 0.766
60 29767 1743 0.724 0.001859 0.720 0.727
120 7011 4059 0.570 0.002748 0.564 0.575
EDUCATION_F=7 - 12.9%
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 106148 7706 0.936 0.000708 0.934 0.937
24 90972 6119 0.880 0.000964 0.878 0.881
36 74962 4856 0.829 0.001148 0.827 0.832
48 61570 3532 0.787 0.001289 0.785 0.790
60 49939 2620 0.751 0.001412 0.748 0.754
120 12025 5994 0.609 0.002122 0.605 0.613
EDUCATION_F=Less than 7%
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 102819 5667 0.951 0.000640 0.949 0.952
24 89468 4825 0.904 0.000893 0.902 0.906
36 74880 3837 0.863 0.001073 0.861 0.865
48 62086 2815 0.828 0.001215 0.826 0.830
60 50461 2131 0.797 0.001342 0.794 0.800
120 12233 5190 0.667 0.002110 0.663 0.671
## Univariable Cox Proportional Hazard Model for: EDUCATION_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EDUCATION_F, data = data)
n= 361420, number of events= 89649
(1490 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
EDUCATION_F13 - 20.9% -0.13004 0.87806 0.01160 -11.21 <2e-16 ***
EDUCATION_F7 - 12.9% -0.26039 0.77075 0.01095 -23.77 <2e-16 ***
EDUCATION_FLess than 7% -0.47909 0.61935 0.01132 -42.32 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
EDUCATION_F13 - 20.9% 0.8781 1.139 0.8583 0.8983
EDUCATION_F7 - 12.9% 0.7707 1.297 0.7544 0.7875
EDUCATION_FLess than 7% 0.6193 1.615 0.6058 0.6332
Concordance= 0.548 (se = 0.001 )
Rsquare= 0.006 (max possible= 0.998 )
Likelihood ratio test= 2342 on 3 df, p=0
Wald test = 2335 on 3 df, p=0
Score (logrank) test = 2360 on 3 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: EDUCATION_F



Urban/Rural
uni_var(test_var = "U_R_F", data_imp = data)
_________________________________________________
## U_R_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ U_R_F, data = data)
11037 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
U_R_F=Metro 297888 72541 165 164 NA
U_R_F=Urban 47786 12979 153 148 157
U_R_F=Rural 6199 1825 141 134 149
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ U_R_F, data = data)
11037 observations deleted due to missingness
U_R_F=Metro
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 249758 17698 0.937 0.000456 0.936 0.938
24 214853 14140 0.882 0.000623 0.881 0.883
36 178176 10974 0.834 0.000739 0.833 0.835
48 147112 8058 0.794 0.000830 0.792 0.795
60 119251 6004 0.759 0.000909 0.757 0.760
120 28714 13883 0.620 0.001369 0.617 0.623
U_R_F=Urban
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 40132 3196 0.930 0.00120 0.927 0.932
24 34165 2546 0.868 0.00163 0.865 0.871
36 28024 1986 0.814 0.00192 0.811 0.818
48 22962 1412 0.770 0.00215 0.766 0.775
60 18526 1058 0.732 0.00234 0.727 0.737
120 4346 2477 0.576 0.00353 0.569 0.583
U_R_F=Rural
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 5179 439 0.926 0.00341 0.919 0.932
24 4360 378 0.855 0.00470 0.846 0.865
36 3585 277 0.798 0.00551 0.787 0.809
48 2881 216 0.746 0.00619 0.734 0.758
60 2314 141 0.706 0.00670 0.693 0.719
120 516 332 0.549 0.00986 0.530 0.568
## Univariable Cox Proportional Hazard Model for: U_R_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ U_R_F, data = data)
n= 351873, number of events= 87345
(11037 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
U_R_FUrban 0.128419 1.137029 0.009531 13.47 <2e-16 ***
U_R_FRural 0.227046 1.254888 0.023701 9.58 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
U_R_FUrban 1.137 0.8795 1.116 1.158
U_R_FRural 1.255 0.7969 1.198 1.315
Concordance= 0.509 (se = 0.001 )
Rsquare= 0.001 (max possible= 0.998 )
Likelihood ratio test= 249 on 2 df, p=0
Wald test = 258.5 on 2 df, p=0
Score (logrank) test = 259.1 on 2 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: U_R_F



Year
uni_var(test_var = "YEAR_OF_DIAGNOSIS", data_imp = data)
_________________________________________________
## YEAR_OF_DIAGNOSIS
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ YEAR_OF_DIAGNOSIS, data = data)
n events median 0.95LCL 0.95UCL
YEAR_OF_DIAGNOSIS=2004 23341 8432 NA 164.6 NA
YEAR_OF_DIAGNOSIS=2005 25400 8688 157.6 154.8 NA
YEAR_OF_DIAGNOSIS=2006 25979 8817 143.3 143.3 NA
YEAR_OF_DIAGNOSIS=2007 27201 8757 NA 131.0 NA
YEAR_OF_DIAGNOSIS=2008 28353 8878 NA NA NA
YEAR_OF_DIAGNOSIS=2009 29626 8524 NA 107.1 NA
YEAR_OF_DIAGNOSIS=2010 29968 8076 95.5 95.0 NA
YEAR_OF_DIAGNOSIS=2011 31345 7787 NA 83.3 NA
YEAR_OF_DIAGNOSIS=2012 32394 6814 71.8 71.7 NA
YEAR_OF_DIAGNOSIS=2013 34625 6286 NA NA NA
YEAR_OF_DIAGNOSIS=2014 36169 5073 NA NA NA
YEAR_OF_DIAGNOSIS=2015 38509 3840 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ YEAR_OF_DIAGNOSIS, data = data)
YEAR_OF_DIAGNOSIS=2004
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 20534 1362 0.940 0.00159 0.937 0.943
24 18897 1200 0.884 0.00216 0.880 0.888
36 17618 1006 0.837 0.00251 0.832 0.841
48 16580 775 0.799 0.00273 0.794 0.805
60 15531 700 0.765 0.00290 0.760 0.771
120 9840 2468 0.631 0.00344 0.624 0.638
YEAR_OF_DIAGNOSIS=2005
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 22550 1409 0.943 0.00148 0.940 0.946
24 20906 1253 0.890 0.00201 0.886 0.894
36 19614 1045 0.845 0.00234 0.841 0.850
48 18526 824 0.809 0.00255 0.804 0.814
60 17333 754 0.776 0.00272 0.771 0.781
120 10971 2625 0.646 0.00326 0.639 0.652
YEAR_OF_DIAGNOSIS=2006
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 22924 1546 0.939 0.00151 0.936 0.942
24 21237 1277 0.886 0.00203 0.882 0.890
36 19737 1178 0.836 0.00237 0.832 0.841
48 18347 997 0.794 0.00261 0.788 0.799
60 17024 804 0.758 0.00277 0.753 0.764
120 9515 2621 0.626 0.00330 0.619 0.632
YEAR_OF_DIAGNOSIS=2007
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 23826 1705 0.935 0.00152 0.932 0.938
24 21930 1425 0.879 0.00204 0.875 0.883
36 20397 1196 0.830 0.00236 0.826 0.835
48 19019 950 0.791 0.00256 0.786 0.796
60 17522 746 0.760 0.00271 0.754 0.765
120 4243 2625 0.621 0.00341 0.614 0.627
YEAR_OF_DIAGNOSIS=2008
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 24610 1800 0.934 0.00150 0.931 0.937
24 22521 1550 0.875 0.00203 0.871 0.879
36 20830 1248 0.826 0.00234 0.821 0.830
48 19203 1006 0.785 0.00255 0.780 0.790
60 17682 802 0.752 0.00270 0.747 0.757
120 3 2472 0.544 0.01943 0.507 0.583
YEAR_OF_DIAGNOSIS=2009
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 25522 1877 0.934 0.00147 0.931 0.937
24 23287 1598 0.875 0.00199 0.871 0.879
36 21389 1246 0.827 0.00229 0.823 0.832
48 19775 1009 0.788 0.00250 0.783 0.793
60 18056 860 0.753 0.00266 0.748 0.758
YEAR_OF_DIAGNOSIS=2010
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 25762 1960 0.932 0.00148 0.929 0.935
24 23583 1498 0.877 0.00196 0.873 0.881
36 21704 1283 0.829 0.00227 0.824 0.833
48 19856 1007 0.789 0.00248 0.785 0.794
60 17634 931 0.751 0.00266 0.746 0.756
YEAR_OF_DIAGNOSIS=2011
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 26669 1936 0.935 0.00142 0.932 0.938
24 24139 1711 0.874 0.00195 0.870 0.878
36 21935 1353 0.824 0.00226 0.820 0.829
48 19519 1101 0.782 0.00248 0.777 0.787
60 15871 866 0.745 0.00267 0.739 0.750
YEAR_OF_DIAGNOSIS=2012
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 27096 2010 0.934 0.00141 0.932 0.937
24 24362 1591 0.878 0.00191 0.874 0.882
36 21745 1319 0.829 0.00223 0.825 0.834
48 18039 1008 0.789 0.00246 0.784 0.794
60 7642 659 0.751 0.00277 0.746 0.757
YEAR_OF_DIAGNOSIS=2013
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 28214 2136 0.934 0.00138 0.932 0.937
24 24913 1639 0.878 0.00187 0.874 0.882
36 20818 1294 0.830 0.00219 0.826 0.834
48 9263 929 0.782 0.00259 0.777 0.788
60 7 288 0.630 0.03382 0.567 0.700
YEAR_OF_DIAGNOSIS=2014
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 28519 2126 0.936 0.00134 0.934 0.939
24 23349 1530 0.883 0.00183 0.879 0.886
36 10284 1074 0.831 0.00234 0.827 0.836
48 7 343 0.653 0.04472 0.571 0.746
YEAR_OF_DIAGNOSIS=2015
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 27931 2080 0.939 0.00129 0.937 0.942
24 11935 1351 0.880 0.00201 0.876 0.884
36 8 409 0.693 0.03072 0.635 0.756
## Univariable Cox Proportional Hazard Model for: YEAR_OF_DIAGNOSIS
X matrix deemed to be singular; variable 12
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ YEAR_OF_DIAGNOSIS, data = data)
n= 362910, number of events= 89972
coef exp(coef) se(coef) z Pr(>|z|)
YEAR_OF_DIAGNOSIS2005 -0.02829 0.97210 0.01540 -1.838 0.066132 .
YEAR_OF_DIAGNOSIS2006 0.04329 1.04424 0.01545 2.802 0.005084 **
YEAR_OF_DIAGNOSIS2007 0.05790 1.05961 0.01555 3.722 0.000197 ***
YEAR_OF_DIAGNOSIS2008 0.11329 1.11995 0.01557 7.276 3.45e-13 ***
YEAR_OF_DIAGNOSIS2009 0.10857 1.11469 0.01578 6.880 5.97e-12 ***
YEAR_OF_DIAGNOSIS2010 0.12528 1.13347 0.01605 7.807 5.88e-15 ***
YEAR_OF_DIAGNOSIS2011 0.15966 1.17311 0.01625 9.823 < 2e-16 ***
YEAR_OF_DIAGNOSIS2012 0.12014 1.12765 0.01688 7.119 1.09e-12 ***
YEAR_OF_DIAGNOSIS2013 0.14330 1.15408 0.01732 8.275 < 2e-16 ***
YEAR_OF_DIAGNOSIS2014 0.12010 1.12760 0.01849 6.494 8.38e-11 ***
YEAR_OF_DIAGNOSIS2015 0.12723 1.13568 0.02030 6.267 3.68e-10 ***
YEAR_OF_DIAGNOSIS2016 NA NA 0.00000 NA NA
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
YEAR_OF_DIAGNOSIS2005 0.9721 1.0287 0.9432 1.002
YEAR_OF_DIAGNOSIS2006 1.0442 0.9576 1.0131 1.076
YEAR_OF_DIAGNOSIS2007 1.0596 0.9437 1.0278 1.092
YEAR_OF_DIAGNOSIS2008 1.1200 0.8929 1.0863 1.155
YEAR_OF_DIAGNOSIS2009 1.1147 0.8971 1.0807 1.150
YEAR_OF_DIAGNOSIS2010 1.1335 0.8822 1.0984 1.170
YEAR_OF_DIAGNOSIS2011 1.1731 0.8524 1.1363 1.211
YEAR_OF_DIAGNOSIS2012 1.1277 0.8868 1.0910 1.166
YEAR_OF_DIAGNOSIS2013 1.1541 0.8665 1.1156 1.194
YEAR_OF_DIAGNOSIS2014 1.1276 0.8868 1.0875 1.169
YEAR_OF_DIAGNOSIS2015 1.1357 0.8805 1.0914 1.182
YEAR_OF_DIAGNOSIS2016 NA NA NA NA
Concordance= 0.511 (se = 0.001 )
Rsquare= 0.001 (max possible= 0.998 )
Likelihood ratio test= 264 on 11 df, p=0
Wald test = 260 on 11 df, p=0
Score (logrank) test = 260.3 on 11 df, p=0
Removed 2 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: YEAR_OF_DIAGNOSIS
This manual palette can handle a maximum of 10 values. You have supplied 12.



Primary Site
uni_var(test_var = "SITE_TEXT", data_imp = data)
_________________________________________________
## SITE_TEXT
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SITE_TEXT, data = data)
n events median 0.95LCL 0.95UCL
SITE_TEXT=C44.0 Skin of lip, NOS 631 187 155 118.2 NA
SITE_TEXT=C44.1 Eyelid 1184 380 122 109.5 139.3
SITE_TEXT=C44.2 External ear 10639 3149 131 125.6 138.2
SITE_TEXT=C44.3 Skin of ear and unspecified parts of face 33680 10586 118 115.7 121.2
SITE_TEXT=C44.4 Skin of scalp and neck 30276 9995 114 111.1 116.7
SITE_TEXT=C44.5 Skin of trunk 113276 23471 NA NA NA
SITE_TEXT=C44.6 Skin of upper limb and shoulder 90064 19354 164 162.7 NA
SITE_TEXT=C44.7 Skin of lower limb and hip 67737 12311 NA NA NA
SITE_TEXT=C44.8 Overlapping lesion of skin 389 143 113 87.0 NA
SITE_TEXT=C44.9 Skin, NOS 15034 10396 11 10.6 11.5
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SITE_TEXT, data = data)
SITE_TEXT=C44.0 Skin of lip, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 535 36 0.940 0.00971 0.921 0.959
24 467 37 0.873 0.01394 0.846 0.901
36 391 31 0.812 0.01673 0.780 0.845
48 312 21 0.764 0.01871 0.728 0.802
60 253 21 0.710 0.02085 0.670 0.752
120 53 38 0.541 0.03086 0.484 0.605
SITE_TEXT=C44.1 Eyelid
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1026 60 0.947 0.00669 0.934 0.960
24 862 78 0.872 0.01021 0.852 0.892
36 714 55 0.813 0.01224 0.789 0.837
48 582 49 0.754 0.01397 0.727 0.782
60 473 42 0.696 0.01551 0.666 0.727
120 105 86 0.503 0.02240 0.461 0.549
SITE_TEXT=C44.2 External ear
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 9051 556 0.945 0.00229 0.940 0.949
24 7649 612 0.878 0.00336 0.871 0.884
36 6310 499 0.817 0.00409 0.809 0.825
48 5107 412 0.760 0.00467 0.751 0.769
60 4109 269 0.716 0.00510 0.707 0.727
120 905 711 0.526 0.00766 0.511 0.541
SITE_TEXT=C44.3 Skin of ear and unspecified parts of face
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 28750 1761 0.945 0.00128 0.942 0.947
24 24359 2104 0.873 0.00192 0.869 0.876
36 19836 1673 0.809 0.00233 0.804 0.813
48 16060 1335 0.750 0.00266 0.745 0.756
60 12693 1078 0.696 0.00294 0.690 0.702
120 2658 2351 0.494 0.00437 0.486 0.503
SITE_TEXT=C44.4 Skin of scalp and neck
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 25477 2029 0.929 0.00152 0.926 0.932
24 21131 2204 0.845 0.00219 0.841 0.850
36 16769 1763 0.770 0.00263 0.765 0.775
48 13283 1211 0.710 0.00294 0.704 0.716
60 10447 850 0.661 0.00319 0.654 0.667
120 2165 1788 0.483 0.00459 0.474 0.492
SITE_TEXT=C44.5 Skin of trunk
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 96604 4575 0.957 0.000622 0.956 0.958
24 83748 4741 0.908 0.000911 0.906 0.910
36 69838 3766 0.865 0.001110 0.862 0.867
48 58021 2849 0.827 0.001267 0.824 0.829
60 47338 2011 0.796 0.001397 0.793 0.798
120 11762 4872 0.667 0.002168 0.662 0.671
SITE_TEXT=C44.6 Skin of upper limb and shoulder
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 77412 3180 0.962 0.000654 0.961 0.964
24 67145 3771 0.914 0.000994 0.912 0.916
36 55975 3084 0.869 0.001230 0.866 0.871
48 46240 2311 0.830 0.001414 0.827 0.833
60 37565 1791 0.795 0.001577 0.792 0.798
120 8927 4580 0.641 0.002558 0.636 0.646
SITE_TEXT=C44.7 Skin of lower limb and hip
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 58436 2223 0.965 0.000727 0.964 0.967
24 50972 2547 0.921 0.001096 0.919 0.923
36 42817 2116 0.881 0.001359 0.878 0.883
48 35910 1459 0.849 0.001549 0.845 0.852
60 29399 1163 0.819 0.001724 0.815 0.822
120 7556 2467 0.711 0.002634 0.706 0.717
SITE_TEXT=C44.8 Overlapping lesion of skin
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 307 52 0.860 0.0180 0.826 0.896
24 262 23 0.794 0.0213 0.754 0.837
36 218 21 0.727 0.0240 0.682 0.776
48 172 11 0.688 0.0254 0.640 0.740
60 144 8 0.653 0.0269 0.603 0.708
120 29 26 0.473 0.0388 0.402 0.555
SITE_TEXT=C44.9 Skin, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6559 7475 0.484 0.00418 0.476 0.492
24 4464 1506 0.368 0.00411 0.360 0.376
36 3211 643 0.311 0.00405 0.303 0.319
48 2447 291 0.280 0.00403 0.273 0.288
60 1881 177 0.258 0.00404 0.251 0.266
120 412 270 0.201 0.00460 0.192 0.210
## Univariable Cox Proportional Hazard Model for: SITE_TEXT
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SITE_TEXT, data = data)
n= 362910, number of events= 89972
coef exp(coef) se(coef) z Pr(>|z|)
SITE_TEXTC44.1 Eyelid 0.08145 1.08485 0.08933 0.912 0.36189
SITE_TEXTC44.2 External ear 0.02387 1.02416 0.07527 0.317 0.75110
SITE_TEXTC44.3 Skin of ear and unspecified parts of face 0.09618 1.10095 0.07377 1.304 0.19233
SITE_TEXTC44.4 Skin of scalp and neck 0.19201 1.21168 0.07381 2.601 0.00928 **
SITE_TEXTC44.5 Skin of trunk -0.38193 0.68254 0.07342 -5.202 1.97e-07 ***
SITE_TEXTC44.6 Skin of upper limb and shoulder -0.34458 0.70852 0.07348 -4.689 2.74e-06 ***
SITE_TEXTC44.7 Skin of lower limb and hip -0.53944 0.58308 0.07368 -7.321 2.46e-13 ***
SITE_TEXTC44.8 Overlapping lesion of skin 0.30726 1.35970 0.11109 2.766 0.00568 **
SITE_TEXTC44.9 Skin, NOS 1.67933 5.36195 0.07379 22.758 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SITE_TEXTC44.1 Eyelid 1.0849 0.9218 0.9106 1.2924
SITE_TEXTC44.2 External ear 1.0242 0.9764 0.8837 1.1870
SITE_TEXTC44.3 Skin of ear and unspecified parts of face 1.1010 0.9083 0.9527 1.2722
SITE_TEXTC44.4 Skin of scalp and neck 1.2117 0.8253 1.0485 1.4003
SITE_TEXTC44.5 Skin of trunk 0.6825 1.4651 0.5911 0.7882
SITE_TEXTC44.6 Skin of upper limb and shoulder 0.7085 1.4114 0.6135 0.8183
SITE_TEXTC44.7 Skin of lower limb and hip 0.5831 1.7150 0.5047 0.6737
SITE_TEXTC44.8 Overlapping lesion of skin 1.3597 0.7355 1.0937 1.6904
SITE_TEXTC44.9 Skin, NOS 5.3620 0.1865 4.6399 6.1963
Concordance= 0.617 (se = 0.001 )
Rsquare= 0.07 (max possible= 0.998 )
Likelihood ratio test= 26455 on 9 df, p=0
Wald test = 38543 on 9 df, p=0
Score (logrank) test = 51507 on 9 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: SITE_TEXT



Histology
uni_var(test_var = "HISTOLOGY_F_LIM", data_imp = data)
_________________________________________________
## HISTOLOGY_F_LIM
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ HISTOLOGY_F_LIM, data = data)
n events median 0.95LCL 0.95UCL
HISTOLOGY_F_LIM=8720 182616 49264 162.7 160.3 165.2
HISTOLOGY_F_LIM=8743 112470 17259 NA NA NA
HISTOLOGY_F_LIM=8742 19251 4953 129.7 125.6 133.9
HISTOLOGY_F_LIM=Other 48573 18496 95.9 93.1 97.9
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ HISTOLOGY_F_LIM, data = data)
HISTOLOGY_F_LIM=8720
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 149938 14977 0.914 0.000673 0.913 0.915
24 129130 9114 0.856 0.000861 0.855 0.858
36 108073 6738 0.809 0.000988 0.807 0.811
48 89985 4912 0.770 0.001088 0.767 0.772
60 73642 3670 0.736 0.001175 0.733 0.738
120 18210 8710 0.600 0.001712 0.597 0.603
HISTOLOGY_F_LIM=8743
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 97178 2303 0.978 0.000454 0.977 0.979
24 84928 3105 0.945 0.000726 0.944 0.947
36 70760 2841 0.911 0.000939 0.909 0.913
48 58608 2255 0.880 0.001115 0.878 0.882
60 47353 1812 0.850 0.001278 0.848 0.853
120 11407 4355 0.724 0.002196 0.720 0.728
HISTOLOGY_F_LIM=8742
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 16438 630 0.965 0.00137 0.962 0.968
24 14192 813 0.915 0.00215 0.911 0.919
36 11594 790 0.860 0.00276 0.855 0.866
48 9298 676 0.806 0.00329 0.800 0.812
60 7377 506 0.758 0.00372 0.751 0.766
120 1477 1368 0.530 0.00623 0.518 0.543
HISTOLOGY_F_LIM=Other
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 40603 4037 0.913 0.00131 0.910 0.915
24 32809 4591 0.806 0.00189 0.802 0.809
36 25652 3282 0.720 0.00220 0.715 0.724
48 20243 2106 0.656 0.00240 0.652 0.661
60 15930 1422 0.607 0.00256 0.602 0.612
120 3478 2756 0.447 0.00341 0.441 0.454
## Univariable Cox Proportional Hazard Model for: HISTOLOGY_F_LIM
X matrix deemed to be singular; variable 1
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ HISTOLOGY_F_LIM, data = data)
n= 362910, number of events= 89972
coef exp(coef) se(coef) z Pr(>|z|)
HISTOLOGY_F_LIM9680 NA NA 0.000000 NA NA
HISTOLOGY_F_LIM8743 -0.609418 0.543667 0.008846 -68.895 <2e-16 ***
HISTOLOGY_F_LIM8742 -0.033942 0.966628 0.014909 -2.277 0.0228 *
HISTOLOGY_F_LIMOther 0.439458 1.551866 0.008632 50.911 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
HISTOLOGY_F_LIM9680 NA NA NA NA
HISTOLOGY_F_LIM8743 0.5437 1.8394 0.5343 0.5532
HISTOLOGY_F_LIM8742 0.9666 1.0345 0.9388 0.9953
HISTOLOGY_F_LIMOther 1.5519 0.6444 1.5258 1.5783
Concordance= 0.599 (se = 0.001 )
Rsquare= 0.028 (max possible= 0.998 )
Likelihood ratio test= 10352 on 3 df, p=0
Wald test = 9905 on 3 df, p=0
Score (logrank) test = 10430 on 3 df, p=0
Removed 2 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: HISTOLOGY_F_LIM



Grade
uni_var(test_var = "GRADE_F", data_imp = data)
_________________________________________________
## GRADE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ GRADE_F, data = data)
n events median 0.95LCL 0.95UCL
GRADE_F=Gr I: Well Diff 759 178 NA 140.5 NA
GRADE_F=Gr II: Mod Diff 1064 243 NA 156.6 NA
GRADE_F=Gr III: Poor Diff 1877 975 46.8 40.9 55.1
GRADE_F=Gr IV: Undiff/Anaplastic 665 287 73.0 59.9 101.7
GRADE_F=NA/Unkown 358545 88289 164.5 161.9 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ GRADE_F, data = data)
GRADE_F=Gr I: Well Diff
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 641 33 0.953 0.00793 0.938 0.969
24 540 39 0.892 0.01203 0.869 0.916
36 437 28 0.842 0.01464 0.814 0.871
48 346 14 0.812 0.01620 0.781 0.844
60 292 15 0.774 0.01816 0.739 0.810
120 73 45 0.602 0.02816 0.549 0.660
GRADE_F=Gr II: Mod Diff
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 925 41 0.959 0.00630 0.947 0.971
24 814 53 0.902 0.00962 0.883 0.921
36 695 36 0.860 0.01148 0.837 0.882
48 600 22 0.831 0.01259 0.807 0.856
60 506 22 0.799 0.01386 0.772 0.827
120 140 64 0.654 0.02061 0.615 0.696
GRADE_F=Gr III: Poor Diff
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1287 456 0.748 0.0102 0.728 0.768
24 968 211 0.620 0.0117 0.598 0.644
36 770 104 0.550 0.0122 0.527 0.574
48 615 73 0.495 0.0126 0.471 0.520
60 495 34 0.466 0.0128 0.441 0.491
120 114 85 0.351 0.0151 0.322 0.382
GRADE_F=Gr IV: Undiff/Anaplastic
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 492 111 0.824 0.0152 0.795 0.854
24 385 62 0.715 0.0185 0.680 0.752
36 297 42 0.630 0.0204 0.592 0.672
48 243 23 0.579 0.0214 0.539 0.623
60 198 15 0.541 0.0221 0.500 0.586
120 44 32 0.401 0.0289 0.348 0.462
GRADE_F=NA/Unkown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 300812 21306 0.937 0.000416 0.937 0.938
24 258352 17258 0.881 0.000570 0.880 0.882
36 213880 13441 0.832 0.000677 0.831 0.834
48 176330 9817 0.791 0.000760 0.790 0.793
60 142811 7324 0.756 0.000832 0.754 0.757
120 34201 16963 0.614 0.001257 0.612 0.617
## Univariable Cox Proportional Hazard Model for: GRADE_F
X matrix deemed to be singular; variable 4 5 6 7
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ GRADE_F, data = data)
n= 362910, number of events= 89972
coef exp(coef) se(coef) z Pr(>|z|)
GRADE_FGr II: Mod Diff -0.15501 0.85640 0.09866 -1.571 0.116
GRADE_FGr III: Poor Diff 1.08725 2.96610 0.08151 13.339 <2e-16 ***
GRADE_FGr IV: Undiff/Anaplastic 0.81123 2.25069 0.09541 8.503 <2e-16 ***
GRADE_F5 NA NA 0.00000 NA NA
GRADE_F6 NA NA 0.00000 NA NA
GRADE_F7 NA NA 0.00000 NA NA
GRADE_F8 NA NA 0.00000 NA NA
GRADE_FNA/Unkown 0.03965 1.04044 0.07503 0.528 0.597
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
GRADE_FGr II: Mod Diff 0.8564 1.1677 0.7058 1.039
GRADE_FGr III: Poor Diff 2.9661 0.3371 2.5282 3.480
GRADE_FGr IV: Undiff/Anaplastic 2.2507 0.4443 1.8668 2.713
GRADE_F5 NA NA NA NA
GRADE_F6 NA NA NA NA
GRADE_F7 NA NA NA NA
GRADE_F8 NA NA NA NA
GRADE_FNA/Unkown 1.0404 0.9611 0.8982 1.205
Concordance= 0.506 (se = 0 )
Rsquare= 0.003 (max possible= 0.998 )
Likelihood ratio test= 915.1 on 4 df, p=0
Wald test = 1234 on 4 df, p=0
Score (logrank) test = 1343 on 4 df, p=0
Removed 5 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: GRADE_F



Clinical T Stage
uni_var(test_var = "TNM_CLIN_T", data_imp = data)
_________________________________________________
## TNM_CLIN_T
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_T, data = data)
9794 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_CLIN_T=N_A 1608 548 160.3 150.7 NA
TNM_CLIN_T=c0 4261 2744 14.1 12.7 15.3
TNM_CLIN_T=c1 18911 2882 NA NA NA
TNM_CLIN_T=c1A 55175 4305 95.5 95.5 NA
TNM_CLIN_T=c1B 20634 2001 97.1 NA NA
TNM_CLIN_T=c2 5403 1306 153.7 141.8 NA
TNM_CLIN_T=c2A 34068 5945 164.4 162.0 NA
TNM_CLIN_T=c2B 8717 2535 110.8 104.6 122.2
TNM_CLIN_T=c3 3178 1210 89.6 81.8 96.4
TNM_CLIN_T=c3A 13377 3947 113.4 109.1 118.6
TNM_CLIN_T=c3B 10395 4261 69.7 66.3 72.0
TNM_CLIN_T=c4 2170 1190 41.9 37.9 45.3
TNM_CLIN_T=c4A 6281 2644 70.0 65.6 74.2
TNM_CLIN_T=c4B 10655 6264 34.2 32.9 35.4
TNM_CLIN_T=cX 155744 45656 165.4 164.6 NA
TNM_CLIN_T=pIS 2539 465 NA 157.9 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_T, data = data)
9794 observations deleted due to missingness
TNM_CLIN_T=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1405 113 0.928 0.00655 0.915 0.941
24 1274 98 0.862 0.00883 0.845 0.880
36 1170 67 0.816 0.00998 0.797 0.836
48 1073 61 0.773 0.01089 0.752 0.794
60 986 40 0.743 0.01142 0.721 0.766
120 400 138 0.619 0.01375 0.593 0.647
TNM_CLIN_T=c0
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2014 1958 0.524 0.00783 0.509 0.540
24 1383 415 0.410 0.00788 0.395 0.426
36 980 177 0.353 0.00788 0.338 0.369
48 726 84 0.320 0.00793 0.305 0.336
60 530 40 0.300 0.00804 0.285 0.316
120 87 59 0.242 0.00993 0.224 0.263
TNM_CLIN_T=c1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 16419 403 0.977 0.00112 0.975 0.979
24 14824 460 0.949 0.00170 0.946 0.952
36 12980 464 0.918 0.00218 0.913 0.922
48 11002 352 0.891 0.00253 0.886 0.896
60 8896 316 0.863 0.00290 0.857 0.869
120 1502 801 0.720 0.00579 0.709 0.732
TNM_CLIN_T=c1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 45816 779 0.984 0.000555 0.983 0.986
24 38151 945 0.963 0.000888 0.961 0.964
36 28525 852 0.938 0.001198 0.936 0.941
48 19945 721 0.910 0.001552 0.907 0.913
60 12428 513 0.881 0.001964 0.878 0.885
TNM_CLIN_T=c1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 17122 385 0.980 0.00103 0.978 0.982
24 13908 510 0.948 0.00170 0.945 0.951
36 9901 420 0.915 0.00229 0.910 0.919
48 6635 305 0.881 0.00291 0.876 0.887
60 3871 204 0.847 0.00367 0.840 0.854
TNM_CLIN_T=c2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4665 211 0.959 0.00280 0.953 0.964
24 4129 242 0.907 0.00417 0.899 0.915
36 3503 212 0.858 0.00513 0.848 0.868
48 2947 168 0.814 0.00587 0.803 0.826
60 2326 161 0.766 0.00665 0.753 0.779
120 303 287 0.592 0.01193 0.569 0.616
TNM_CLIN_T=c2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 29464 759 0.976 0.000856 0.974 0.978
24 25227 1136 0.936 0.001419 0.934 0.939
36 20248 1037 0.894 0.001862 0.891 0.898
48 16002 862 0.853 0.002255 0.848 0.857
60 12260 680 0.812 0.002631 0.807 0.817
120 1826 1343 0.645 0.005145 0.635 0.656
TNM_CLIN_T=c2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7387 437 0.947 0.00249 0.942 0.951
24 6074 590 0.867 0.00387 0.860 0.875
36 4657 499 0.790 0.00485 0.780 0.799
48 3501 345 0.725 0.00556 0.714 0.736
60 2540 243 0.669 0.00619 0.657 0.681
120 314 391 0.483 0.01043 0.463 0.503
TNM_CLIN_T=c3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2678 250 0.917 0.00500 0.908 0.927
24 2266 256 0.827 0.00700 0.814 0.841
36 1815 232 0.738 0.00836 0.722 0.754
48 1412 162 0.667 0.00922 0.650 0.686
60 1070 114 0.609 0.00992 0.590 0.629
120 129 188 0.425 0.01512 0.397 0.456
TNM_CLIN_T=c3A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 11497 582 0.954 0.00187 0.950 0.957
24 9564 878 0.878 0.00301 0.872 0.884
36 7351 784 0.799 0.00383 0.792 0.807
48 5649 573 0.731 0.00444 0.723 0.740
60 4221 389 0.676 0.00492 0.666 0.685
120 589 689 0.479 0.00826 0.463 0.495
TNM_CLIN_T=c3B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 8723 818 0.917 0.00277 0.912 0.923
24 6761 1160 0.789 0.00423 0.781 0.798
36 4905 859 0.681 0.00503 0.671 0.690
48 3581 530 0.600 0.00552 0.590 0.611
60 2570 328 0.539 0.00591 0.528 0.551
120 295 527 0.344 0.00888 0.327 0.362
TNM_CLIN_T=c4
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1605 425 0.797 0.00882 0.780 0.814
24 1184 310 0.637 0.01075 0.616 0.659
36 889 178 0.537 0.01140 0.515 0.560
48 662 113 0.464 0.01175 0.441 0.487
60 501 67 0.413 0.01199 0.390 0.437
120 59 95 0.280 0.01600 0.250 0.313
TNM_CLIN_T=c4A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 5224 580 0.904 0.00380 0.896 0.911
24 4043 712 0.775 0.00554 0.764 0.786
36 3049 475 0.677 0.00641 0.665 0.690
48 2280 334 0.597 0.00700 0.583 0.611
60 1651 210 0.536 0.00745 0.521 0.551
120 226 318 0.360 0.01061 0.339 0.381
TNM_CLIN_T=c4B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 8023 2025 0.804 0.00392 0.796 0.811
24 5505 1854 0.610 0.00493 0.600 0.620
36 3705 1051 0.485 0.00522 0.475 0.495
48 2521 581 0.401 0.00536 0.391 0.412
60 1742 299 0.349 0.00546 0.338 0.359
120 160 444 0.194 0.00736 0.180 0.209
TNM_CLIN_T=cX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 132133 11393 0.924 0.000686 0.923 0.925
24 119023 7409 0.871 0.000881 0.869 0.873
36 106890 5972 0.826 0.001009 0.824 0.828
48 96220 4458 0.791 0.001097 0.788 0.793
60 86053 3647 0.760 0.001168 0.757 0.762
120 28530 11018 0.630 0.001528 0.627 0.633
TNM_CLIN_T=pIS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2192 63 0.974 0.00329 0.967 0.980
24 1850 88 0.932 0.00536 0.922 0.943
36 1493 77 0.890 0.00697 0.876 0.903
48 1164 66 0.847 0.00841 0.830 0.863
60 892 49 0.807 0.00975 0.788 0.826
120 152 115 0.623 0.01838 0.588 0.660
## Univariable Cox Proportional Hazard Model for: TNM_CLIN_T
X matrix deemed to be singular; variable 8
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_T, data = data)
n= 353116, number of events= 87903
(9794 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_CLIN_Tc0 1.70956 5.52651 0.04684 36.494 < 2e-16 ***
TNM_CLIN_Tc1 -0.57711 0.56152 0.04662 -12.379 < 2e-16 ***
TNM_CLIN_Tc1A -0.89914 0.40692 0.04543 -19.792 < 2e-16 ***
TNM_CLIN_Tc1B -0.63446 0.53022 0.04829 -13.138 < 2e-16 ***
TNM_CLIN_Tc2 -0.06001 0.94175 0.05092 -1.179 0.239
TNM_CLIN_Tc2A -0.31573 0.72926 0.04467 -7.068 1.57e-12 ***
TNM_CLIN_Tc2B 0.29119 1.33802 0.04715 6.176 6.57e-10 ***
TNM_CLIN_Tc2C NA NA 0.00000 NA NA
TNM_CLIN_Tc3 0.51767 1.67811 0.05152 10.048 < 2e-16 ***
TNM_CLIN_Tc3A 0.26915 1.30885 0.04562 5.900 3.64e-09 ***
TNM_CLIN_Tc3B 0.71220 2.03847 0.04543 15.677 < 2e-16 ***
TNM_CLIN_Tc4 1.10491 3.01896 0.05166 21.387 < 2e-16 ***
TNM_CLIN_Tc4A 0.71881 2.05200 0.04698 15.302 < 2e-16 ***
TNM_CLIN_Tc4B 1.28103 3.60035 0.04461 28.714 < 2e-16 ***
TNM_CLIN_TcX -0.05344 0.94796 0.04298 -1.243 0.214
TNM_CLIN_TpIS -0.26369 0.76821 0.06307 -4.181 2.90e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_Tc0 5.5265 0.1809 5.0417 6.0579
TNM_CLIN_Tc1 0.5615 1.7809 0.5125 0.6152
TNM_CLIN_Tc1A 0.4069 2.4575 0.3723 0.4448
TNM_CLIN_Tc1B 0.5302 1.8860 0.4823 0.5829
TNM_CLIN_Tc2 0.9418 1.0619 0.8523 1.0406
TNM_CLIN_Tc2A 0.7293 1.3713 0.6681 0.7960
TNM_CLIN_Tc2B 1.3380 0.7474 1.2199 1.4676
TNM_CLIN_Tc2C NA NA NA NA
TNM_CLIN_Tc3 1.6781 0.5959 1.5169 1.8564
TNM_CLIN_Tc3A 1.3089 0.7640 1.1969 1.4313
TNM_CLIN_Tc3B 2.0385 0.4906 1.8648 2.2283
TNM_CLIN_Tc4 3.0190 0.3312 2.7282 3.3407
TNM_CLIN_Tc4A 2.0520 0.4873 1.8715 2.2499
TNM_CLIN_Tc4B 3.6004 0.2778 3.2989 3.9293
TNM_CLIN_TcX 0.9480 1.0549 0.8714 1.0313
TNM_CLIN_TpIS 0.7682 1.3017 0.6789 0.8693
Concordance= 0.64 (se = 0.001 )
Rsquare= 0.066 (max possible= 0.998 )
Likelihood ratio test= 24210 on 15 df, p=0
Wald test = 28661 on 15 df, p=0
Score (logrank) test = 34935 on 15 df, p=0
Removed 2 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_CLIN_T
This manual palette can handle a maximum of 10 values. You have supplied 16.



Clinical N Stage
uni_var(test_var = "TNM_CLIN_N", data_imp = data)
_________________________________________________
## TNM_CLIN_N
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_N, data = data)
8298 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_CLIN_N=N_A 1608 548 160.3 150.7 NA
TNM_CLIN_N=c0 247096 47331 NA 164.6 NA
TNM_CLIN_N=c1 5666 2838 43.6 40.5 47.0
TNM_CLIN_N=c1A 1325 516 110.8 93.4 131.8
TNM_CLIN_N=c1B 1624 954 28.6 26.1 33.0
TNM_CLIN_N=c2 1148 630 33.9 31.3 39.2
TNM_CLIN_N=c2A 415 186 77.7 67.0 118.9
TNM_CLIN_N=c2B 805 487 29.2 26.1 33.3
TNM_CLIN_N=c2C 900 479 38.7 35.5 45.7
TNM_CLIN_N=c3 2603 1825 15.7 14.8 17.1
TNM_CLIN_N=cX 91422 32280 155.9 153.6 158.2
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_N, data = data)
8298 observations deleted due to missingness
TNM_CLIN_N=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1405 113 0.928 0.00655 0.915 0.941
24 1274 98 0.862 0.00883 0.845 0.880
36 1170 67 0.816 0.00998 0.797 0.836
48 1073 61 0.773 0.01089 0.752 0.794
60 986 40 0.743 0.01142 0.721 0.766
120 400 138 0.619 0.01375 0.593 0.647
TNM_CLIN_N=c0
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 210265 8609 0.963 0.000394 0.962 0.964
24 179841 9675 0.916 0.000595 0.915 0.917
36 145477 8175 0.871 0.000746 0.870 0.873
48 116031 6081 0.831 0.000870 0.830 0.833
60 89945 4538 0.795 0.000983 0.794 0.797
120 14585 9384 0.646 0.001775 0.643 0.650
TNM_CLIN_N=c1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3995 1271 0.767 0.00574 0.756 0.778
24 2926 691 0.628 0.00671 0.615 0.641
36 2138 385 0.539 0.00714 0.525 0.553
48 1585 206 0.483 0.00740 0.468 0.497
60 1145 117 0.443 0.00766 0.428 0.458
120 137 155 0.332 0.01086 0.311 0.354
TNM_CLIN_N=c1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1160 95 0.926 0.00731 0.912 0.940
24 962 129 0.820 0.01092 0.799 0.842
36 797 96 0.735 0.01278 0.710 0.760
48 649 73 0.665 0.01396 0.638 0.693
60 524 43 0.617 0.01475 0.589 0.646
120 94 74 0.471 0.02050 0.432 0.513
TNM_CLIN_N=c1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1085 442 0.719 0.0114 0.697 0.741
24 769 247 0.550 0.0128 0.525 0.575
36 553 115 0.462 0.0131 0.437 0.489
48 419 71 0.399 0.0133 0.373 0.426
60 330 22 0.376 0.0134 0.350 0.403
120 50 52 0.278 0.0165 0.248 0.312
TNM_CLIN_N=c2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 814 256 0.769 0.0127 0.744 0.794
24 550 181 0.590 0.0152 0.561 0.621
36 383 89 0.486 0.0160 0.456 0.519
48 286 43 0.427 0.0164 0.396 0.461
60 217 26 0.386 0.0167 0.354 0.420
120 46 34 0.301 0.0194 0.265 0.341
TNM_CLIN_N=c2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 367 29 0.929 0.0128 0.904 0.954
24 286 62 0.767 0.0214 0.726 0.810
36 231 36 0.666 0.0244 0.620 0.716
48 200 13 0.627 0.0252 0.580 0.679
60 162 17 0.571 0.0264 0.522 0.626
120 26 27 0.411 0.0371 0.344 0.490
TNM_CLIN_N=c2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 576 199 0.748 0.0155 0.719 0.779
24 394 138 0.562 0.0180 0.528 0.598
36 287 73 0.454 0.0185 0.419 0.491
48 216 36 0.393 0.0186 0.358 0.431
60 160 16 0.361 0.0187 0.326 0.399
120 25 25 0.264 0.0232 0.222 0.314
TNM_CLIN_N=c2C
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 687 155 0.822 0.0130 0.797 0.848
24 482 141 0.646 0.0167 0.614 0.679
36 332 82 0.527 0.0181 0.493 0.564
48 220 44 0.450 0.0188 0.415 0.489
60 153 23 0.396 0.0197 0.359 0.436
120 21 33 0.281 0.0231 0.239 0.330
TNM_CLIN_N=c3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1414 1077 0.576 0.00984 0.557 0.595
24 851 433 0.391 0.00993 0.372 0.411
36 570 154 0.314 0.00973 0.296 0.334
48 388 85 0.263 0.00961 0.245 0.283
60 279 27 0.243 0.00964 0.225 0.262
120 31 45 0.168 0.01312 0.145 0.196
TNM_CLIN_N=cX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 75826 8985 0.898 0.00102 0.896 0.900
24 67601 5322 0.834 0.00127 0.831 0.836
36 60464 4113 0.782 0.00143 0.779 0.785
48 54421 3020 0.742 0.00153 0.739 0.745
60 48736 2439 0.707 0.00161 0.704 0.711
120 19157 7130 0.577 0.00195 0.573 0.581
## Univariable Cox Proportional Hazard Model for: TNM_CLIN_N
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_N, data = data)
n= 354612, number of events= 88074
(8298 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_CLIN_Nc0 -0.23062 0.79404 0.04299 -5.365 8.12e-08 ***
TNM_CLIN_Nc1 1.07883 2.94122 0.04671 23.098 < 2e-16 ***
TNM_CLIN_Nc1A 0.43514 1.54518 0.06136 7.092 1.32e-12 ***
TNM_CLIN_Nc1B 1.26262 3.53466 0.05363 23.541 < 2e-16 ***
TNM_CLIN_Nc2 1.18426 3.26826 0.05845 20.262 < 2e-16 ***
TNM_CLIN_Nc2A 0.60849 1.83766 0.08487 7.170 7.52e-13 ***
TNM_CLIN_Nc2B 1.26659 3.54872 0.06231 20.328 < 2e-16 ***
TNM_CLIN_Nc2C 1.13924 3.12438 0.06259 18.201 < 2e-16 ***
TNM_CLIN_Nc3 1.76674 5.85177 0.04878 36.216 < 2e-16 ***
TNM_CLIN_NcX 0.14286 1.15357 0.04308 3.316 0.000913 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_Nc0 0.794 1.2594 0.7299 0.8638
TNM_CLIN_Nc1 2.941 0.3400 2.6839 3.2232
TNM_CLIN_Nc1A 1.545 0.6472 1.3701 1.7426
TNM_CLIN_Nc1B 3.535 0.2829 3.1820 3.9265
TNM_CLIN_Nc2 3.268 0.3060 2.9145 3.6649
TNM_CLIN_Nc2A 1.838 0.5442 1.5560 2.1702
TNM_CLIN_Nc2B 3.549 0.2818 3.1408 4.0096
TNM_CLIN_Nc2C 3.124 0.3201 2.7637 3.5322
TNM_CLIN_Nc3 5.852 0.1709 5.3182 6.4389
TNM_CLIN_NcX 1.154 0.8669 1.0602 1.2552
Concordance= 0.59 (se = 0.001 )
Rsquare= 0.033 (max possible= 0.998 )
Likelihood ratio test= 11826 on 10 df, p=0
Wald test = 15960 on 10 df, p=0
Score (logrank) test = 19080 on 10 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_CLIN_N
This manual palette can handle a maximum of 10 values. You have supplied 11.



Clinical Stage Group
uni_var(test_var = "TNM_CLIN_STAGE_GROUP", data_imp = data)
_________________________________________________
## TNM_CLIN_STAGE_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_STAGE_GROUP, data = data)
43 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_CLIN_STAGE_GROUP=0 3415 657 NA 157.90 NA
TNM_CLIN_STAGE_GROUP=1 11136 1745 NA 161.58 NA
TNM_CLIN_STAGE_GROUP=1A 95569 10889 NA NA NA
TNM_CLIN_STAGE_GROUP=1B 63589 9853 NA 164.44 NA
TNM_CLIN_STAGE_GROUP=2 1978 608 151.26 117.19 NA
TNM_CLIN_STAGE_GROUP=2A 22432 6304 118.54 113.81 123.4
TNM_CLIN_STAGE_GROUP=2B 15534 6087 76.16 73.53 79.2
TNM_CLIN_STAGE_GROUP=2C 7948 4304 42.45 40.54 43.9
TNM_CLIN_STAGE_GROUP=3 11303 5144 61.27 58.78 64.8
TNM_CLIN_STAGE_GROUP=4 13516 11322 6.41 6.18 6.6
TNM_CLIN_STAGE_GROUP=N_A 1609 548 160.33 150.70 NA
TNM_CLIN_STAGE_GROUP=99 114838 32497 164.47 161.68 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_STAGE_GROUP, data = data)
43 observations deleted due to missingness
TNM_CLIN_STAGE_GROUP=0
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2944 109 0.966 0.00319 0.960 0.972
24 2494 122 0.924 0.00484 0.914 0.933
36 2032 101 0.883 0.00609 0.871 0.895
48 1633 88 0.842 0.00724 0.828 0.856
60 1294 64 0.806 0.00822 0.790 0.822
120 251 159 0.639 0.01461 0.611 0.668
TNM_CLIN_STAGE_GROUP=1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 9791 201 0.981 0.00134 0.978 0.983
24 8870 279 0.952 0.00215 0.948 0.956
36 7747 282 0.920 0.00279 0.915 0.926
48 6595 210 0.893 0.00326 0.887 0.900
60 5348 216 0.862 0.00380 0.854 0.869
120 1070 504 0.726 0.00695 0.712 0.739
TNM_CLIN_STAGE_GROUP=1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 82128 1263 0.986 0.000400 0.985 0.986
24 72641 1639 0.965 0.000638 0.964 0.966
36 61084 1654 0.941 0.000848 0.940 0.943
48 50407 1480 0.917 0.001042 0.915 0.919
60 40560 1201 0.893 0.001225 0.890 0.895
120 7811 3257 0.766 0.002532 0.761 0.771
TNM_CLIN_STAGE_GROUP=1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 54788 1190 0.980 0.000579 0.979 0.981
24 47096 1807 0.946 0.000969 0.944 0.948
36 37773 1718 0.908 0.001290 0.905 0.910
48 29886 1417 0.870 0.001576 0.867 0.874
60 22806 1149 0.833 0.001857 0.829 0.837
120 3361 2356 0.670 0.003792 0.663 0.677
TNM_CLIN_STAGE_GROUP=2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1705 102 0.946 0.00523 0.936 0.956
24 1471 142 0.865 0.00807 0.849 0.881
36 1244 112 0.796 0.00969 0.778 0.815
48 1027 77 0.744 0.01073 0.723 0.765
60 847 54 0.702 0.01154 0.680 0.725
120 90 117 0.535 0.01850 0.500 0.572
TNM_CLIN_STAGE_GROUP=2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 19406 813 0.961 0.00133 0.959 0.964
24 16245 1384 0.890 0.00223 0.885 0.894
36 12639 1262 0.815 0.00288 0.809 0.820
48 9653 943 0.748 0.00336 0.742 0.755
60 7206 668 0.691 0.00376 0.684 0.699
120 1006 1143 0.496 0.00632 0.484 0.509
TNM_CLIN_STAGE_GROUP=2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 13273 965 0.935 0.00204 0.931 0.939
24 10494 1611 0.816 0.00329 0.809 0.822
36 7801 1267 0.710 0.00400 0.702 0.718
48 5804 800 0.631 0.00443 0.622 0.639
60 4177 544 0.565 0.00478 0.556 0.575
120 528 841 0.368 0.00712 0.354 0.382
TNM_CLIN_STAGE_GROUP=2C
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6406 1045 0.863 0.00393 0.856 0.871
24 4562 1299 0.681 0.00547 0.670 0.691
36 3142 831 0.548 0.00605 0.536 0.560
48 2173 473 0.457 0.00634 0.445 0.470
60 1524 246 0.400 0.00651 0.387 0.413
120 148 399 0.220 0.00889 0.203 0.238
TNM_CLIN_STAGE_GROUP=3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 9131 1454 0.866 0.00327 0.860 0.873
24 6869 1523 0.716 0.00443 0.707 0.725
36 5137 884 0.617 0.00491 0.608 0.627
48 3910 532 0.549 0.00519 0.539 0.559
60 2945 283 0.505 0.00539 0.495 0.516
120 465 439 0.379 0.00721 0.365 0.393
TNM_CLIN_STAGE_GROUP=4
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4103 8748 0.3321 0.00415 0.3241 0.3403
24 2140 1603 0.1967 0.00359 0.1898 0.2039
36 1227 547 0.1411 0.00328 0.1348 0.1477
48 804 199 0.1159 0.00315 0.1099 0.1223
60 559 81 0.1027 0.00312 0.0968 0.1090
120 82 130 0.0663 0.00353 0.0598 0.0736
TNM_CLIN_STAGE_GROUP=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1406 113 0.928 0.00655 0.915 0.941
24 1275 98 0.862 0.00882 0.845 0.880
36 1171 67 0.816 0.00998 0.797 0.836
48 1074 61 0.773 0.01088 0.752 0.795
60 987 40 0.744 0.01142 0.722 0.766
120 400 138 0.619 0.01375 0.593 0.647
TNM_CLIN_STAGE_GROUP=99
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 99043 5937 0.946 0.000687 0.944 0.947
24 86876 6115 0.885 0.000985 0.883 0.887
36 75066 4926 0.833 0.001176 0.831 0.835
48 65153 3668 0.790 0.001309 0.788 0.793
60 56039 2862 0.754 0.001416 0.751 0.757
120 19360 7703 0.614 0.001893 0.610 0.617
## Univariable Cox Proportional Hazard Model for: TNM_CLIN_STAGE_GROUP
X matrix deemed to be singular; variable 4 10 11 12 14 15 16
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_STAGE_GROUP, data = data)
n= 362867, number of events= 89958
(43 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_CLIN_STAGE_GROUP1 -0.34493 0.70827 0.04577 -7.535 4.86e-14 ***
TNM_CLIN_STAGE_GROUP1A -0.58497 0.55712 0.04017 -14.561 < 2e-16 ***
TNM_CLIN_STAGE_GROUP1B -0.18149 0.83403 0.04029 -4.504 6.67e-06 ***
TNM_CLIN_STAGE_GROUP1C NA NA 0.00000 NA NA
TNM_CLIN_STAGE_GROUP2 0.43921 1.55148 0.05628 7.805 6.00e-15 ***
TNM_CLIN_STAGE_GROUP2A 0.46369 1.58992 0.04100 11.310 < 2e-16 ***
TNM_CLIN_STAGE_GROUP2B 0.88353 2.41942 0.04107 21.513 < 2e-16 ***
TNM_CLIN_STAGE_GROUP2C 1.38281 3.98610 0.04190 33.004 < 2e-16 ***
TNM_CLIN_STAGE_GROUP3 1.08099 2.94759 0.04143 26.089 < 2e-16 ***
TNM_CLIN_STAGE_GROUP3A NA NA 0.00000 NA NA
TNM_CLIN_STAGE_GROUP3B NA NA 0.00000 NA NA
TNM_CLIN_STAGE_GROUP3C NA NA 0.00000 NA NA
TNM_CLIN_STAGE_GROUP4 2.83685 17.06185 0.04021 70.552 < 2e-16 ***
TNM_CLIN_STAGE_GROUP4A NA NA 0.00000 NA NA
TNM_CLIN_STAGE_GROUP4B NA NA 0.00000 NA NA
TNM_CLIN_STAGE_GROUP4C NA NA 0.00000 NA NA
TNM_CLIN_STAGE_GROUPN_A 0.22022 1.24635 0.05787 3.805 0.000142 ***
TNM_CLIN_STAGE_GROUP99 0.20140 1.22311 0.03942 5.110 3.23e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_STAGE_GROUP1 0.7083 1.41189 0.6475 0.7748
TNM_CLIN_STAGE_GROUP1A 0.5571 1.79494 0.5149 0.6028
TNM_CLIN_STAGE_GROUP1B 0.8340 1.19900 0.7707 0.9026
TNM_CLIN_STAGE_GROUP1C NA NA NA NA
TNM_CLIN_STAGE_GROUP2 1.5515 0.64454 1.3895 1.7324
TNM_CLIN_STAGE_GROUP2A 1.5899 0.62896 1.4672 1.7230
TNM_CLIN_STAGE_GROUP2B 2.4194 0.41332 2.2323 2.6222
TNM_CLIN_STAGE_GROUP2C 3.9861 0.25087 3.6718 4.3273
TNM_CLIN_STAGE_GROUP3 2.9476 0.33926 2.7177 3.1969
TNM_CLIN_STAGE_GROUP3A NA NA NA NA
TNM_CLIN_STAGE_GROUP3B NA NA NA NA
TNM_CLIN_STAGE_GROUP3C NA NA NA NA
TNM_CLIN_STAGE_GROUP4 17.0619 0.05861 15.7689 18.4609
TNM_CLIN_STAGE_GROUP4A NA NA NA NA
TNM_CLIN_STAGE_GROUP4B NA NA NA NA
TNM_CLIN_STAGE_GROUP4C NA NA NA NA
TNM_CLIN_STAGE_GROUPN_A 1.2464 0.80234 1.1127 1.3960
TNM_CLIN_STAGE_GROUP99 1.2231 0.81759 1.1322 1.3213
Concordance= 0.705 (se = 0.001 )
Rsquare= 0.149 (max possible= 0.998 )
Likelihood ratio test= 58580 on 11 df, p=0
Wald test = 83674 on 11 df, p=0
Score (logrank) test = 142755 on 11 df, p=0
Removed 8 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_CLIN_STAGE_GROUP
This manual palette can handle a maximum of 10 values. You have supplied 12.



Pathologic T Stage
uni_var(test_var = "TNM_PATH_T", data_imp = data)
_________________________________________________
## TNM_PATH_T
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_T, data = data)
15174 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_PATH_T=N_A 1608 548 160.3 150.7 NA
TNM_PATH_T=p0 4729 966 NA 151.8 NA
TNM_PATH_T=p1 12061 1818 NA 161.4 NA
TNM_PATH_T=p1A 60788 4622 NA 95.5 NA
TNM_PATH_T=p1B 23363 2046 97.1 NA NA
TNM_PATH_T=p2 3707 902 NA 156.0 NA
TNM_PATH_T=p2A 40964 6867 164.7 164.4 NA
TNM_PATH_T=p2B 9316 2469 130.2 119.3 133.8
TNM_PATH_T=p3 2393 906 97.6 87.9 113.3
TNM_PATH_T=p3A 17370 4845 120.4 116.7 127.2
TNM_PATH_T=p3B 12918 5054 73.5 70.7 77.7
TNM_PATH_T=p4 1628 874 45.3 42.2 50.5
TNM_PATH_T=p4A 9301 3754 69.8 66.8 73.7
TNM_PATH_T=p4B 15277 8722 34.9 33.9 35.8
TNM_PATH_T=pIS 1358 221 NA 151.2 NA
TNM_PATH_T=pX 130955 40263 165.4 164.6 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_T, data = data)
15174 observations deleted due to missingness
TNM_PATH_T=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1405 113 0.928 0.00655 0.915 0.941
24 1274 98 0.862 0.00883 0.845 0.880
36 1170 67 0.816 0.00998 0.797 0.836
48 1073 61 0.773 0.01089 0.752 0.794
60 986 40 0.743 0.01142 0.721 0.766
120 400 138 0.619 0.01375 0.593 0.647
TNM_PATH_T=p0
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3692 425 0.905 0.00439 0.896 0.914
24 2872 212 0.849 0.00555 0.838 0.860
36 2069 123 0.808 0.00641 0.796 0.821
48 1491 75 0.775 0.00721 0.761 0.789
60 984 50 0.744 0.00818 0.728 0.760
120 106 76 0.616 0.01797 0.582 0.652
TNM_PATH_T=p1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 10570 226 0.980 0.00132 0.977 0.983
24 9589 292 0.952 0.00206 0.948 0.956
36 8462 272 0.924 0.00262 0.919 0.929
48 7173 226 0.897 0.00308 0.891 0.903
60 5859 225 0.867 0.00359 0.860 0.874
120 1282 509 0.733 0.00672 0.720 0.746
TNM_PATH_T=p1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 50621 847 0.985 0.000525 0.984 0.986
24 41969 1022 0.963 0.000839 0.962 0.965
36 31134 926 0.939 0.001136 0.937 0.941
48 21579 758 0.912 0.001470 0.909 0.915
60 13362 542 0.884 0.001871 0.880 0.887
TNM_PATH_T=p1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 19493 383 0.982 0.000912 0.980 0.984
24 15895 494 0.955 0.001490 0.952 0.958
36 11326 457 0.923 0.002056 0.919 0.927
48 7557 319 0.892 0.002628 0.887 0.897
60 4426 199 0.863 0.003294 0.856 0.869
TNM_PATH_T=p2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3243 119 0.966 0.00307 0.960 0.972
24 2887 162 0.916 0.00481 0.907 0.925
36 2540 133 0.872 0.00589 0.861 0.884
48 2155 129 0.825 0.00687 0.812 0.839
60 1810 95 0.787 0.00761 0.772 0.802
120 379 242 0.617 0.01216 0.594 0.641
TNM_PATH_T=p2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 35584 816 0.979 0.000739 0.977 0.980
24 30537 1263 0.942 0.001240 0.940 0.944
36 24466 1213 0.901 0.001651 0.898 0.904
48 19261 993 0.861 0.002012 0.857 0.865
60 14662 774 0.822 0.002357 0.818 0.827
120 2789 1619 0.659 0.004441 0.650 0.668
TNM_PATH_T=p2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7937 385 0.956 0.00221 0.951 0.960
24 6614 519 0.890 0.00346 0.883 0.897
36 5091 508 0.815 0.00449 0.806 0.824
48 3855 357 0.752 0.00525 0.742 0.763
60 2830 225 0.703 0.00584 0.692 0.715
120 494 426 0.516 0.00968 0.498 0.536
TNM_PATH_T=p3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2050 149 0.935 0.00518 0.925 0.945
24 1754 187 0.847 0.00769 0.832 0.862
36 1426 180 0.757 0.00938 0.738 0.775
48 1168 118 0.691 0.01035 0.671 0.711
60 905 108 0.622 0.01125 0.600 0.644
120 170 155 0.453 0.01541 0.424 0.484
TNM_PATH_T=p3A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 15063 643 0.961 0.00152 0.958 0.964
24 12546 1081 0.889 0.00254 0.884 0.894
36 9650 968 0.814 0.00327 0.807 0.820
48 7382 689 0.750 0.00381 0.743 0.758
60 5437 515 0.692 0.00430 0.684 0.700
120 1026 872 0.502 0.00686 0.489 0.515
TNM_PATH_T=p3B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 11009 866 0.930 0.00231 0.925 0.934
24 8564 1397 0.806 0.00368 0.799 0.813
36 6167 1106 0.693 0.00448 0.684 0.702
48 4485 613 0.617 0.00492 0.608 0.627
60 3163 405 0.555 0.00532 0.544 0.565
120 512 619 0.369 0.00776 0.354 0.385
TNM_PATH_T=p4
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1274 264 0.833 0.00941 0.814 0.851
24 967 218 0.685 0.01193 0.662 0.709
36 747 143 0.580 0.01296 0.555 0.606
48 556 117 0.484 0.01351 0.458 0.511
60 421 59 0.428 0.01378 0.402 0.456
120 74 65 0.313 0.01702 0.282 0.348
TNM_PATH_T=p4A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7768 793 0.911 0.00303 0.905 0.917
24 5923 1064 0.779 0.00454 0.771 0.788
36 4366 706 0.679 0.00531 0.669 0.689
48 3217 452 0.602 0.00581 0.591 0.614
60 2294 285 0.542 0.00623 0.530 0.555
120 399 429 0.374 0.00873 0.357 0.392
TNM_PATH_T=p4B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 11675 2691 0.817 0.00319 0.811 0.824
24 7938 2677 0.621 0.00411 0.613 0.629
36 5215 1542 0.490 0.00440 0.482 0.499
48 3501 788 0.408 0.00454 0.399 0.417
60 2366 415 0.354 0.00466 0.345 0.363
120 298 578 0.208 0.00610 0.197 0.220
TNM_PATH_T=pIS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1160 22 0.982 0.00372 0.975 0.990
24 990 37 0.949 0.00647 0.937 0.962
36 777 42 0.904 0.00921 0.886 0.922
48 612 31 0.865 0.01118 0.843 0.887
60 459 22 0.829 0.01303 0.804 0.855
120 101 64 0.632 0.02541 0.584 0.684
TNM_PATH_T=pX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 111129 10285 0.919 0.000770 0.917 0.920
24 102135 5970 0.868 0.000963 0.867 0.870
36 94648 4783 0.827 0.001087 0.825 0.829
48 87842 3875 0.793 0.001174 0.791 0.795
60 80833 3231 0.763 0.001241 0.761 0.765
120 26542 10481 0.634 0.001591 0.631 0.637
## Univariable Cox Proportional Hazard Model for: TNM_PATH_T
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_T, data = data)
n= 347736, number of events= 84877
(15174 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_PATH_Tp0 0.11831 1.12559 0.05353 2.210 0.027086 *
TNM_PATH_Tp1 -0.61500 0.54064 0.04875 -12.616 < 2e-16 ***
TNM_PATH_Tp1A -0.90762 0.40348 0.04526 -20.054 < 2e-16 ***
TNM_PATH_Tp1B -0.73029 0.48177 0.04818 -15.157 < 2e-16 ***
TNM_PATH_Tp2 -0.13147 0.87680 0.05417 -2.427 0.015228 *
TNM_PATH_Tp2A -0.36182 0.69641 0.04442 -8.146 3.33e-16 ***
TNM_PATH_Tp2B 0.17705 1.19368 0.04725 3.747 0.000179 ***
TNM_PATH_Tp3 0.44268 1.55688 0.05414 8.177 3.33e-16 ***
TNM_PATH_Tp3A 0.20590 1.22863 0.04510 4.565 4.99e-06 ***
TNM_PATH_Tp3B 0.65706 1.92910 0.04502 14.595 < 2e-16 ***
TNM_PATH_Tp4 1.00597 2.73456 0.05452 18.452 < 2e-16 ***
TNM_PATH_Tp4A 0.70111 2.01599 0.04577 15.317 < 2e-16 ***
TNM_PATH_Tp4B 1.27041 3.56231 0.04411 28.800 < 2e-16 ***
TNM_PATH_TpIS -0.37452 0.68762 0.07970 -4.699 2.61e-06 ***
TNM_PATH_TpX -0.06880 0.93351 0.04301 -1.600 0.109646
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_Tp0 1.1256 0.8884 1.0135 1.2501
TNM_PATH_Tp1 0.5406 1.8497 0.4914 0.5948
TNM_PATH_Tp1A 0.4035 2.4784 0.3692 0.4409
TNM_PATH_Tp1B 0.4818 2.0757 0.4384 0.5295
TNM_PATH_Tp2 0.8768 1.1405 0.7885 0.9750
TNM_PATH_Tp2A 0.6964 1.4359 0.6383 0.7598
TNM_PATH_Tp2B 1.1937 0.8377 1.0881 1.3095
TNM_PATH_Tp3 1.5569 0.6423 1.4001 1.7311
TNM_PATH_Tp3A 1.2286 0.8139 1.1247 1.3422
TNM_PATH_Tp3B 1.9291 0.5184 1.7662 2.1071
TNM_PATH_Tp4 2.7346 0.3657 2.4574 3.0429
TNM_PATH_Tp4A 2.0160 0.4960 1.8430 2.2052
TNM_PATH_Tp4B 3.5623 0.2807 3.2673 3.8840
TNM_PATH_TpIS 0.6876 1.4543 0.5882 0.8039
TNM_PATH_TpX 0.9335 1.0712 0.8580 1.0156
Concordance= 0.641 (se = 0.001 )
Rsquare= 0.063 (max possible= 0.997 )
Likelihood ratio test= 22560 on 15 df, p=0
Wald test = 25245 on 15 df, p=0
Score (logrank) test = 29762 on 15 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_PATH_T
This manual palette can handle a maximum of 10 values. You have supplied 16.



Pathologic N Stage
uni_var(test_var = "TNM_PATH_N", data_imp = data)
_________________________________________________
## TNM_PATH_N
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_N, data = data)
28869 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_PATH_N=N_A 1608 548 160.3 150.7 NA
TNM_PATH_N=p0 161766 28438 NA 165.4 NA
TNM_PATH_N=p1 4601 1864 85.2 76.4 94.5
TNM_PATH_N=p1A 10736 2992 134.1 127.5 148.5
TNM_PATH_N=p1B 2516 1177 49.1 43.1 55.5
TNM_PATH_N=p2 1370 679 50.8 45.8 59.0
TNM_PATH_N=p2A 3523 1289 79.7 73.7 91.1
TNM_PATH_N=p2B 1858 913 41.5 37.5 47.4
TNM_PATH_N=p2C 1798 860 48.8 43.7 54.3
TNM_PATH_N=p3 4889 3056 25.0 23.9 26.2
TNM_PATH_N=pX 139376 41237 161.3 159.6 164.5
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_N, data = data)
28869 observations deleted due to missingness
TNM_PATH_N=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1405 113 0.928 0.00655 0.915 0.941
24 1274 98 0.862 0.00883 0.845 0.880
36 1170 67 0.816 0.00998 0.797 0.836
48 1073 61 0.773 0.01089 0.752 0.794
60 986 40 0.743 0.01142 0.721 0.766
120 400 138 0.619 0.01375 0.593 0.647
TNM_PATH_N=p0
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 139818 3568 0.976 0.000392 0.976 0.977
24 121377 5311 0.937 0.000645 0.936 0.939
36 99735 5080 0.895 0.000846 0.893 0.897
48 80892 3840 0.858 0.001004 0.856 0.860
60 63553 3057 0.822 0.001152 0.820 0.824
120 13706 6754 0.674 0.002023 0.670 0.677
TNM_PATH_N=p1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3778 490 0.889 0.00474 0.880 0.898
24 3001 479 0.772 0.00647 0.759 0.784
36 2337 353 0.676 0.00741 0.662 0.691
48 1832 210 0.612 0.00793 0.596 0.627
60 1380 128 0.564 0.00837 0.548 0.580
120 247 183 0.437 0.01134 0.415 0.459
TNM_PATH_N=p1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 9435 407 0.960 0.00194 0.956 0.964
24 7696 796 0.875 0.00338 0.868 0.882
36 5840 632 0.797 0.00429 0.788 0.805
48 4401 437 0.731 0.00495 0.722 0.741
60 3208 279 0.680 0.00549 0.669 0.691
120 595 405 0.529 0.00857 0.512 0.546
TNM_PATH_N=p1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1945 381 0.842 0.00746 0.827 0.856
24 1400 365 0.676 0.00982 0.657 0.696
36 968 216 0.563 0.01079 0.542 0.585
48 692 92 0.504 0.01131 0.482 0.526
60 490 52 0.461 0.01181 0.438 0.485
120 85 65 0.354 0.01574 0.324 0.386
TNM_PATH_N=p2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1121 168 0.873 0.00915 0.855 0.891
24 834 199 0.712 0.01274 0.688 0.738
36 635 121 0.604 0.01411 0.577 0.632
48 475 90 0.514 0.01489 0.485 0.544
60 366 43 0.463 0.01529 0.434 0.494
120 75 48 0.364 0.01879 0.329 0.402
TNM_PATH_N=p2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3059 188 0.944 0.00398 0.936 0.952
24 2377 392 0.817 0.00690 0.804 0.831
36 1700 293 0.707 0.00846 0.691 0.724
48 1247 166 0.632 0.00936 0.614 0.651
60 890 95 0.579 0.01007 0.559 0.599
120 162 149 0.413 0.01495 0.385 0.444
TNM_PATH_N=p2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1442 287 0.840 0.00867 0.823 0.857
24 991 305 0.653 0.01161 0.631 0.677
36 668 165 0.535 0.01268 0.511 0.560
48 463 74 0.469 0.01325 0.444 0.496
60 320 33 0.430 0.01377 0.404 0.458
120 61 43 0.329 0.01833 0.295 0.367
TNM_PATH_N=p2C
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1427 227 0.868 0.00817 0.852 0.884
24 1004 275 0.692 0.01151 0.670 0.715
36 693 144 0.583 0.01281 0.559 0.609
48 479 87 0.503 0.01367 0.477 0.530
60 337 51 0.443 0.01438 0.416 0.473
120 58 73 0.287 0.01891 0.253 0.327
TNM_PATH_N=p3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3417 1294 0.730 0.00643 0.717 0.742
24 2133 970 0.513 0.00740 0.498 0.527
36 1404 407 0.407 0.00752 0.393 0.422
48 930 191 0.345 0.00761 0.330 0.360
60 656 81 0.311 0.00774 0.297 0.327
120 100 102 0.231 0.00959 0.213 0.250
TNM_PATH_N=pX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 115671 11418 0.914 0.000766 0.913 0.916
24 101946 6977 0.858 0.000975 0.856 0.860
36 88685 5346 0.811 0.001113 0.809 0.813
48 77042 4131 0.771 0.001217 0.769 0.774
60 66676 3203 0.738 0.001301 0.735 0.740
120 19083 8917 0.600 0.001758 0.596 0.603
## Univariable Cox Proportional Hazard Model for: TNM_PATH_N
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_N, data = data)
n= 334041, number of events= 83053
(28869 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_PATH_Np0 -0.35771 0.69927 0.04315 -8.290 < 2e-16 ***
TNM_PATH_Np1 0.63924 1.89504 0.04862 13.147 < 2e-16 ***
TNM_PATH_Np1A 0.22139 1.24781 0.04650 4.761 1.92e-06 ***
TNM_PATH_Np1B 0.98521 2.67836 0.05176 19.034 < 2e-16 ***
TNM_PATH_Np2 0.89237 2.44091 0.05745 15.533 < 2e-16 ***
TNM_PATH_Np2A 0.57084 1.76975 0.05103 11.186 < 2e-16 ***
TNM_PATH_Np2B 1.06589 2.90343 0.05409 19.708 < 2e-16 ***
TNM_PATH_Np2C 1.00466 2.73098 0.05470 18.365 < 2e-16 ***
TNM_PATH_Np3 1.46776 4.33951 0.04646 31.591 < 2e-16 ***
TNM_PATH_NpX 0.05819 1.05991 0.04301 1.353 0.176
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_Np0 0.6993 1.4301 0.6426 0.761
TNM_PATH_Np1 1.8950 0.5277 1.7228 2.085
TNM_PATH_Np1A 1.2478 0.8014 1.1391 1.367
TNM_PATH_Np1B 2.6784 0.3734 2.4200 2.964
TNM_PATH_Np2 2.4409 0.4097 2.1810 2.732
TNM_PATH_Np2A 1.7698 0.5651 1.6013 1.956
TNM_PATH_Np2B 2.9034 0.3444 2.6114 3.228
TNM_PATH_Np2C 2.7310 0.3662 2.4533 3.040
TNM_PATH_Np3 4.3395 0.2304 3.9618 4.753
TNM_PATH_NpX 1.0599 0.9435 0.9742 1.153
Concordance= 0.604 (se = 0.001 )
Rsquare= 0.036 (max possible= 0.998 )
Likelihood ratio test= 12120 on 10 df, p=0
Wald test = 15069 on 10 df, p=0
Score (logrank) test = 17350 on 10 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_PATH_N
This manual palette can handle a maximum of 10 values. You have supplied 11.



Pathologic M Stage
uni_var(test_var = "TNM_PATH_M", data_imp = data)
_________________________________________________
## TNM_PATH_M
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_M, data = data)
199448 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_PATH_M=N_A 1609 549 160.33 150.70 NA
TNM_PATH_M=p1 1989 1731 7.43 6.97 8.08
TNM_PATH_M=p1A 1165 718 23.13 20.50 26.41
TNM_PATH_M=p1B 907 704 10.55 9.43 12.12
TNM_PATH_M=p1C 2241 1898 5.88 5.49 6.34
TNM_PATH_M=pX 155551 49114 165.19 164.47 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_M, data = data)
199448 observations deleted due to missingness
TNM_PATH_M=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1406 113 0.928 0.00655 0.915 0.941
24 1275 98 0.862 0.00882 0.845 0.880
36 1171 67 0.816 0.00998 0.797 0.836
48 1074 61 0.773 0.01088 0.752 0.795
60 986 41 0.743 0.01143 0.721 0.766
120 400 138 0.619 0.01375 0.592 0.646
TNM_PATH_M=p1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 669 1261 0.3534 0.01087 0.3327 0.3753
24 379 265 0.2105 0.00938 0.1929 0.2297
36 260 98 0.1546 0.00842 0.1389 0.1720
48 205 39 0.1305 0.00795 0.1158 0.1470
60 172 20 0.1173 0.00767 0.1032 0.1334
120 43 41 0.0833 0.00725 0.0702 0.0988
TNM_PATH_M=p1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 711 362 0.675 0.0141 0.647 0.703
24 466 184 0.492 0.0154 0.463 0.523
36 315 89 0.389 0.0156 0.360 0.421
48 239 33 0.345 0.0156 0.316 0.377
60 191 13 0.325 0.0157 0.295 0.357
120 39 34 0.231 0.0187 0.197 0.271
TNM_PATH_M=p1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 396 468 0.470 0.0169 0.4376 0.504
24 215 138 0.299 0.0159 0.2691 0.331
36 107 59 0.206 0.0149 0.1788 0.237
48 65 20 0.163 0.0146 0.1364 0.194
60 41 10 0.134 0.0146 0.1087 0.166
120 7 7 0.102 0.0155 0.0759 0.138
TNM_PATH_M=p1C
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 610 1536 0.2964 0.00986 0.2777 0.3164
24 289 246 0.1695 0.00836 0.1539 0.1867
36 154 71 0.1217 0.00773 0.1075 0.1379
48 96 21 0.1036 0.00753 0.0899 0.1195
60 59 13 0.0880 0.00756 0.0743 0.1041
120 4 11 0.0607 0.00900 0.0454 0.0811
TNM_PATH_M=pX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 137506 7936 0.947 0.000578 0.946 0.948
24 126905 7769 0.893 0.000808 0.891 0.895
36 117977 6697 0.845 0.000951 0.844 0.847
48 110012 5434 0.806 0.001046 0.804 0.808
60 101841 4589 0.772 0.001117 0.770 0.774
120 34079 14529 0.631 0.001437 0.628 0.634
## Univariable Cox Proportional Hazard Model for: TNM_PATH_M
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_M, data = data)
n= 163462, number of events= 54714
(199448 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_PATH_Mp1 2.28750 9.85031 0.04910 46.590 <2e-16 ***
TNM_PATH_Mp1A 1.44157 4.22733 0.05676 25.400 <2e-16 ***
TNM_PATH_Mp1B 2.18953 8.93099 0.05710 38.346 <2e-16 ***
TNM_PATH_Mp1C 2.64046 14.01966 0.04874 54.173 <2e-16 ***
TNM_PATH_MpX -0.09322 0.91099 0.04292 -2.172 0.0298 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_Mp1 9.850 0.10152 8.9466 10.8453
TNM_PATH_Mp1A 4.227 0.23656 3.7823 4.7247
TNM_PATH_Mp1B 8.931 0.11197 7.9854 9.9885
TNM_PATH_Mp1C 14.020 0.07133 12.7423 15.4250
TNM_PATH_MpX 0.911 1.09771 0.8375 0.9909
Concordance= 0.554 (se = 0 )
Rsquare= 0.083 (max possible= 1 )
Likelihood ratio test= 14212 on 5 df, p=0
Wald test = 24732 on 5 df, p=0
Score (logrank) test = 40425 on 5 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_PATH_M



Pathologic Stage Group
uni_var(test_var = "TNM_PATH_STAGE_GROUP", data_imp = data)
_________________________________________________
## TNM_PATH_STAGE_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_STAGE_GROUP, data = data)
11146 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_PATH_STAGE_GROUP=0 2692 446 NA 148.21 NA
TNM_PATH_STAGE_GROUP=1 8007 1254 NA NA NA
TNM_PATH_STAGE_GROUP=1A 86795 10430 NA NA NA
TNM_PATH_STAGE_GROUP=1B 70294 10651 NA NA NA
TNM_PATH_STAGE_GROUP=2 1642 519 150.54 129.41 NA
TNM_PATH_STAGE_GROUP=2A 24145 6449 135.36 132.04 142.42
TNM_PATH_STAGE_GROUP=2B 16599 6174 89.26 86.54 92.39
TNM_PATH_STAGE_GROUP=2C 8258 4301 47.90 46.59 49.71
TNM_PATH_STAGE_GROUP=3 6964 3123 82.40 76.25 88.18
TNM_PATH_STAGE_GROUP=3A 10302 2803 154.78 139.93 NA
TNM_PATH_STAGE_GROUP=3B 9390 3943 67.78 64.76 71.85
TNM_PATH_STAGE_GROUP=3C 6606 3825 31.38 29.96 32.59
TNM_PATH_STAGE_GROUP=4 7652 6190 8.51 8.08 8.87
TNM_PATH_STAGE_GROUP=N_A 1609 548 160.33 150.70 NA
TNM_PATH_STAGE_GROUP=99 90809 26192 160.03 155.70 161.68
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_STAGE_GROUP, data = data)
11146 observations deleted due to missingness
TNM_PATH_STAGE_GROUP=0
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2302 55 0.978 0.00293 0.972 0.984
24 1970 76 0.944 0.00477 0.935 0.953
36 1548 71 0.906 0.00640 0.893 0.918
48 1255 51 0.874 0.00759 0.859 0.889
60 963 46 0.838 0.00893 0.821 0.856
120 229 132 0.649 0.01718 0.616 0.683
TNM_PATH_STAGE_GROUP=1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7088 124 0.984 0.00147 0.981 0.986
24 6501 163 0.960 0.00231 0.956 0.965
36 5753 179 0.932 0.00303 0.927 0.938
48 4996 155 0.906 0.00362 0.899 0.913
60 4158 153 0.876 0.00423 0.868 0.884
120 1208 414 0.743 0.00733 0.728 0.757
TNM_PATH_STAGE_GROUP=1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 75125 1076 0.987 0.000405 0.986 0.987
24 67214 1425 0.967 0.000649 0.966 0.968
36 57766 1448 0.945 0.000857 0.943 0.947
48 48907 1333 0.921 0.001049 0.919 0.924
60 40676 1125 0.899 0.001226 0.896 0.901
120 10493 3459 0.775 0.002349 0.771 0.780
TNM_PATH_STAGE_GROUP=1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 61234 1018 0.984 0.000483 0.984 0.985
24 53754 1595 0.957 0.000816 0.956 0.959
36 44573 1750 0.924 0.001116 0.922 0.926
48 36505 1459 0.891 0.001368 0.888 0.894
60 29141 1277 0.857 0.001617 0.854 0.860
120 6648 3134 0.705 0.002983 0.699 0.711
TNM_PATH_STAGE_GROUP=2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1459 53 0.966 0.00459 0.957 0.975
24 1299 97 0.900 0.00774 0.885 0.915
36 1128 95 0.833 0.00979 0.814 0.852
48 992 60 0.787 0.01090 0.766 0.808
60 835 66 0.731 0.01207 0.708 0.755
120 194 138 0.552 0.01709 0.519 0.586
TNM_PATH_STAGE_GROUP=2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 21108 658 0.971 0.00112 0.969 0.973
24 18179 1178 0.915 0.00191 0.911 0.918
36 14677 1219 0.849 0.00254 0.844 0.854
48 11757 938 0.790 0.00300 0.784 0.796
60 9236 743 0.736 0.00339 0.729 0.743
120 1941 1556 0.541 0.00527 0.530 0.551
TNM_PATH_STAGE_GROUP=2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 14411 818 0.948 0.00176 0.945 0.952
24 11762 1445 0.849 0.00294 0.843 0.855
36 8989 1310 0.748 0.00369 0.740 0.755
48 6954 833 0.673 0.00413 0.665 0.681
60 5273 570 0.613 0.00447 0.604 0.622
120 1011 1093 0.416 0.00621 0.404 0.428
TNM_PATH_STAGE_GROUP=2C
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6869 843 0.893 0.00347 0.887 0.900
24 5068 1242 0.725 0.00515 0.715 0.735
36 3608 843 0.596 0.00586 0.585 0.608
48 2546 541 0.499 0.00623 0.487 0.511
60 1855 297 0.435 0.00644 0.423 0.448
120 278 505 0.250 0.00800 0.235 0.266
TNM_PATH_STAGE_GROUP=3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 5915 618 0.908 0.00354 0.901 0.915
24 4706 884 0.768 0.00526 0.758 0.778
36 3784 567 0.672 0.00596 0.660 0.684
48 3104 348 0.607 0.00631 0.595 0.620
60 2561 223 0.561 0.00655 0.548 0.574
120 603 431 0.427 0.00788 0.412 0.443
TNM_PATH_STAGE_GROUP=3A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 9201 286 0.971 0.00170 0.968 0.974
24 7665 693 0.894 0.00321 0.888 0.901
36 6013 586 0.821 0.00415 0.812 0.829
48 4701 442 0.756 0.00484 0.746 0.765
60 3593 289 0.705 0.00537 0.694 0.715
120 754 466 0.554 0.00804 0.539 0.570
TNM_PATH_STAGE_GROUP=3B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7993 705 0.921 0.00285 0.916 0.927
24 6101 1172 0.780 0.00450 0.771 0.789
36 4439 817 0.668 0.00531 0.657 0.678
48 3308 461 0.593 0.00575 0.581 0.604
60 2367 308 0.532 0.00613 0.520 0.544
120 484 447 0.372 0.00817 0.357 0.389
TNM_PATH_STAGE_GROUP=3C
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 5036 1266 0.803 0.00496 0.793 0.813
24 3296 1284 0.589 0.00630 0.577 0.601
36 2166 656 0.462 0.00662 0.450 0.476
48 1438 319 0.387 0.00677 0.373 0.400
60 1014 124 0.349 0.00690 0.336 0.363
120 166 162 0.253 0.00876 0.237 0.271
TNM_PATH_STAGE_GROUP=4
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2857 4448 0.4024 0.00572 0.391 0.414
24 1592 1019 0.2529 0.00518 0.243 0.263
36 969 385 0.1862 0.00481 0.177 0.196
48 673 155 0.1539 0.00463 0.145 0.163
60 489 66 0.1375 0.00456 0.129 0.147
120 100 104 0.0952 0.00496 0.086 0.105
TNM_PATH_STAGE_GROUP=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1406 113 0.928 0.00655 0.915 0.941
24 1275 98 0.862 0.00882 0.845 0.880
36 1171 67 0.816 0.00998 0.797 0.836
48 1074 61 0.773 0.01088 0.752 0.795
60 987 40 0.744 0.01142 0.722 0.766
120 400 138 0.619 0.01375 0.593 0.647
TNM_PATH_STAGE_GROUP=99
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 73796 8329 0.904 0.00100 0.902 0.906
24 63760 4646 0.845 0.00126 0.842 0.847
36 54124 3300 0.799 0.00142 0.796 0.801
48 45892 2533 0.759 0.00156 0.756 0.762
60 38530 1890 0.726 0.00167 0.722 0.729
120 10063 4840 0.590 0.00232 0.586 0.595
## Univariable Cox Proportional Hazard Model for: TNM_PATH_STAGE_GROUP
X matrix deemed to be singular; variable 4 14 15 16
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_STAGE_GROUP, data = data)
n= 351764, number of events= 86848
(11146 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_PATH_STAGE_GROUP1 -0.27207 0.76180 0.05514 -4.934 8.04e-07 ***
TNM_PATH_STAGE_GROUP1A -0.46113 0.63057 0.04836 -9.536 < 2e-16 ***
TNM_PATH_STAGE_GROUP1B -0.15970 0.85240 0.04833 -3.304 0.000953 ***
TNM_PATH_STAGE_GROUP1C NA NA 0.00000 NA NA
TNM_PATH_STAGE_GROUP2 0.46330 1.58930 0.06457 7.175 7.22e-13 ***
TNM_PATH_STAGE_GROUP2A 0.45204 1.57152 0.04896 9.233 < 2e-16 ***
TNM_PATH_STAGE_GROUP2B 0.87922 2.40902 0.04903 17.931 < 2e-16 ***
TNM_PATH_STAGE_GROUP2C 1.39818 4.04783 0.04975 28.103 < 2e-16 ***
TNM_PATH_STAGE_GROUP3 1.00907 2.74306 0.05062 19.934 < 2e-16 ***
TNM_PATH_STAGE_GROUP3A 0.50918 1.66393 0.05098 9.988 < 2e-16 ***
TNM_PATH_STAGE_GROUP3B 1.10511 3.01956 0.04996 22.119 < 2e-16 ***
TNM_PATH_STAGE_GROUP3C 1.69328 5.43730 0.05005 33.831 < 2e-16 ***
TNM_PATH_STAGE_GROUP4 2.69749 14.84243 0.04907 54.971 < 2e-16 ***
TNM_PATH_STAGE_GROUP4A NA NA 0.00000 NA NA
TNM_PATH_STAGE_GROUP4B NA NA 0.00000 NA NA
TNM_PATH_STAGE_GROUP4C NA NA 0.00000 NA NA
TNM_PATH_STAGE_GROUPN_A 0.36782 1.44458 0.06379 5.766 8.10e-09 ***
TNM_PATH_STAGE_GROUP99 0.49614 1.64238 0.04775 10.389 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_STAGE_GROUP1 0.7618 1.31268 0.6838 0.8487
TNM_PATH_STAGE_GROUP1A 0.6306 1.58587 0.5736 0.6933
TNM_PATH_STAGE_GROUP1B 0.8524 1.17316 0.7754 0.9371
TNM_PATH_STAGE_GROUP1C NA NA NA NA
TNM_PATH_STAGE_GROUP2 1.5893 0.62921 1.4004 1.8037
TNM_PATH_STAGE_GROUP2A 1.5715 0.63633 1.4277 1.7298
TNM_PATH_STAGE_GROUP2B 2.4090 0.41511 2.1883 2.6520
TNM_PATH_STAGE_GROUP2C 4.0478 0.24705 3.6717 4.4624
TNM_PATH_STAGE_GROUP3 2.7431 0.36456 2.4840 3.0292
TNM_PATH_STAGE_GROUP3A 1.6639 0.60099 1.5057 1.8388
TNM_PATH_STAGE_GROUP3B 3.0196 0.33117 2.7379 3.3302
TNM_PATH_STAGE_GROUP3C 5.4373 0.18391 4.9292 5.9977
TNM_PATH_STAGE_GROUP4 14.8424 0.06737 13.4814 16.3408
TNM_PATH_STAGE_GROUP4A NA NA NA NA
TNM_PATH_STAGE_GROUP4B NA NA NA NA
TNM_PATH_STAGE_GROUP4C NA NA NA NA
TNM_PATH_STAGE_GROUPN_A 1.4446 0.69224 1.2748 1.6370
TNM_PATH_STAGE_GROUP99 1.6424 0.60887 1.4956 1.8035
Concordance= 0.698 (se = 0.001 )
Rsquare= 0.116 (max possible= 0.998 )
Likelihood ratio test= 43484 on 14 df, p=0
Wald test = 54341 on 14 df, p=0
Score (logrank) test = 78834 on 14 df, p=0
Removed 5 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_PATH_STAGE_GROUP
This manual palette can handle a maximum of 10 values. You have supplied 15.



Margins
uni_var(test_var = "MARGINS", data_imp = data)
_________________________________________________
## MARGINS
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ MARGINS, data = data)
n events median 0.95LCL 0.95UCL
MARGINS=No Residual 329265 70369 NA 164.73 NA
MARGINS=Residual, NOS 5326 2401 74.12 68.83 80.5
MARGINS=Microscopic Resid 5723 2641 68.11 64.89 73.4
MARGINS=Macroscopic Resid 366 242 23.06 19.25 27.8
MARGINS=Not evaluable 999 433 82.40 73.66 104.2
MARGINS=No surg 16733 12252 8.87 8.57 9.2
MARGINS=Unknown 4498 1634 139.24 129.31 149.4
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ MARGINS, data = data)
MARGINS=No Residual
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 284582 10282 0.967 0.000324 0.966 0.967
24 246304 14276 0.916 0.000514 0.915 0.917
36 204546 11986 0.868 0.000646 0.867 0.870
48 168935 8929 0.828 0.000746 0.826 0.829
60 136867 6838 0.791 0.000833 0.790 0.793
120 32872 15998 0.646 0.001316 0.643 0.648
MARGINS=Residual, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3980 929 0.818 0.00541 0.807 0.829
24 3200 494 0.713 0.00647 0.700 0.725
36 2576 316 0.638 0.00702 0.625 0.652
48 2032 241 0.575 0.00742 0.561 0.590
60 1659 114 0.541 0.00764 0.526 0.556
120 346 280 0.399 0.00973 0.381 0.419
MARGINS=Microscopic Resid
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4455 863 0.843 0.00492 0.833 0.853
24 3552 597 0.726 0.00615 0.714 0.738
36 2817 383 0.643 0.00674 0.630 0.657
48 2240 268 0.579 0.00713 0.565 0.593
60 1808 168 0.532 0.00740 0.518 0.547
120 334 324 0.374 0.00983 0.355 0.394
MARGINS=Macroscopic Resid
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 229 120 0.663 0.0251 0.615 0.714
24 149 60 0.481 0.0271 0.431 0.538
36 107 25 0.397 0.0271 0.348 0.454
48 79 17 0.331 0.0270 0.282 0.388
60 63 3 0.317 0.0270 0.268 0.375
120 9 14 0.192 0.0330 0.137 0.269
MARGINS=Not evaluable
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 764 162 0.830 0.0122 0.806 0.854
24 603 107 0.709 0.0150 0.681 0.739
36 499 51 0.646 0.0161 0.616 0.679
48 416 25 0.612 0.0166 0.580 0.646
60 332 26 0.570 0.0174 0.537 0.605
120 82 57 0.430 0.0216 0.390 0.475
MARGINS=No surg
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6526 9055 0.435 0.00394 0.428 0.443
24 4167 1743 0.314 0.00377 0.306 0.321
36 2879 674 0.259 0.00366 0.252 0.266
48 2112 329 0.226 0.00361 0.219 0.234
60 1593 168 0.207 0.00361 0.200 0.214
120 340 255 0.157 0.00402 0.149 0.165
MARGINS=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3621 536 0.875 0.00504 0.866 0.885
24 3084 346 0.789 0.00632 0.777 0.802
36 2655 216 0.732 0.00697 0.718 0.746
48 2320 140 0.692 0.00737 0.677 0.706
60 1980 93 0.662 0.00767 0.647 0.677
120 589 261 0.536 0.00970 0.517 0.555
## Univariable Cox Proportional Hazard Model for: MARGINS
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ MARGINS, data = data)
n= 362910, number of events= 89972
coef exp(coef) se(coef) z Pr(>|z|)
MARGINSResidual, NOS 0.967379 2.631040 0.020756 46.61 <2e-16 ***
MARGINSMicroscopic Resid 0.985189 2.678317 0.019826 49.69 <2e-16 ***
MARGINSMacroscopic Resid 1.732810 5.656527 0.064404 26.91 <2e-16 ***
MARGINSNot evaluable 0.873543 2.395383 0.048205 18.12 <2e-16 ***
MARGINSNo surg 2.251671 9.503601 0.009911 227.19 <2e-16 ***
MARGINSUnknown 0.520778 1.683337 0.025027 20.81 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
MARGINSResidual, NOS 2.631 0.3801 2.526 2.740
MARGINSMicroscopic Resid 2.678 0.3734 2.576 2.784
MARGINSMacroscopic Resid 5.657 0.1768 4.986 6.418
MARGINSNot evaluable 2.395 0.4175 2.179 2.633
MARGINSNo surg 9.504 0.1052 9.321 9.690
MARGINSUnknown 1.683 0.5941 1.603 1.768
Concordance= 0.612 (se = 0 )
Rsquare= 0.091 (max possible= 0.998 )
Likelihood ratio test= 34649 on 6 df, p=0
Wald test = 54125 on 6 df, p=0
Score (logrank) test = 78275 on 6 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: MARGINS



Margins Yes/No
#uni_var(test_var = "MARGINS_YN", data_imp = data)
30 Day Readmission
uni_var(test_var = "READM_HOSP_30_DAYS_F", data_imp = data)
_________________________________________________
## READM_HOSP_30_DAYS_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ READM_HOSP_30_DAYS_F, data = data)
n events median 0.95LCL 0.95UCL
READM_HOSP_30_DAYS_F=No_Surg_or_No_Readmit 347736 84921 164 162 165
READM_HOSP_30_DAYS_F=Unplan_Readmit_Same 3407 1253 113 103 124
READM_HOSP_30_DAYS_F=Plan_Readmit_Same 5388 1646 157 140 NA
READM_HOSP_30_DAYS_F=PlanUnplan_Same 515 135 130 122 NA
READM_HOSP_30_DAYS_F=9 5864 2017 160 158 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ READM_HOSP_30_DAYS_F, data = data)
READM_HOSP_30_DAYS_F=No_Surg_or_No_Readmit
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 291361 20768 0.937 0.000424 0.936 0.938
24 249996 16607 0.881 0.000579 0.880 0.882
36 206568 12940 0.833 0.000687 0.831 0.834
48 169989 9385 0.792 0.000771 0.790 0.794
60 137365 7017 0.757 0.000845 0.755 0.758
120 32483 16133 0.616 0.001285 0.613 0.618
READM_HOSP_30_DAYS_F=Unplan_Readmit_Same
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2713 385 0.882 0.00567 0.871 0.893
24 2245 264 0.793 0.00728 0.779 0.807
36 1869 156 0.735 0.00810 0.719 0.751
48 1536 133 0.679 0.00880 0.662 0.697
60 1236 87 0.638 0.00932 0.620 0.657
120 303 202 0.484 0.01245 0.460 0.509
READM_HOSP_30_DAYS_F=Plan_Readmit_Same
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4635 280 0.945 0.00320 0.939 0.951
24 3988 361 0.869 0.00482 0.860 0.879
36 3370 264 0.809 0.00574 0.798 0.820
48 2819 195 0.760 0.00639 0.747 0.772
60 2327 148 0.717 0.00693 0.703 0.731
120 702 348 0.566 0.00934 0.548 0.585
READM_HOSP_30_DAYS_F=PlanUnplan_Same
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 450 30 0.939 0.0107 0.918 0.961
24 399 20 0.896 0.0139 0.869 0.924
36 315 24 0.837 0.0175 0.803 0.872
48 261 20 0.781 0.0203 0.742 0.822
60 217 10 0.750 0.0217 0.709 0.794
120 24 29 0.573 0.0388 0.502 0.654
READM_HOSP_30_DAYS_F=9
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4998 484 0.914 0.00373 0.907 0.922
24 4431 371 0.845 0.00488 0.836 0.855
36 3957 267 0.793 0.00553 0.782 0.804
48 3529 216 0.748 0.00599 0.737 0.760
60 3157 148 0.716 0.00629 0.704 0.728
120 1060 477 0.578 0.00779 0.563 0.593
## Univariable Cox Proportional Hazard Model for: READM_HOSP_30_DAYS_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ READM_HOSP_30_DAYS_F, data = data)
n= 362910, number of events= 89972
coef exp(coef) se(coef) z Pr(>|z|)
READM_HOSP_30_DAYS_FUnplan_Readmit_Same 0.47735 1.61180 0.02846 16.774 < 2e-16 ***
READM_HOSP_30_DAYS_FPlan_Readmit_Same 0.14940 1.16114 0.02489 6.003 1.94e-09 ***
READM_HOSP_30_DAYS_FPlanUnplan_Same 0.07259 1.07529 0.08614 0.843 0.399
READM_HOSP_30_DAYS_F9 0.14804 1.15956 0.02254 6.567 5.13e-11 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
READM_HOSP_30_DAYS_FUnplan_Readmit_Same 1.612 0.6204 1.5244 1.704
READM_HOSP_30_DAYS_FPlan_Readmit_Same 1.161 0.8612 1.1059 1.219
READM_HOSP_30_DAYS_FPlanUnplan_Same 1.075 0.9300 0.9083 1.273
READM_HOSP_30_DAYS_F9 1.160 0.8624 1.1094 1.212
Concordance= 0.506 (se = 0 )
Rsquare= 0.001 (max possible= 0.998 )
Likelihood ratio test= 311.7 on 4 df, p=0
Wald test = 352.3 on 4 df, p=0
Score (logrank) test = 357.7 on 4 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: READM_HOSP_30_DAYS_F



Radiation Type
uni_var(test_var = "RX_SUMM_RADIATION_F", data_imp = data)
_________________________________________________
## RX_SUMM_RADIATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_SUMM_RADIATION_F, data = data)
n events median 0.95LCL 0.95UCL
RX_SUMM_RADIATION_F=None 349080 81074 164.7 164.5 NA
RX_SUMM_RADIATION_F=Beam Radiation 11458 8190 15.5 14.9 16.2
RX_SUMM_RADIATION_F=Radioactive Implants 44 20 64.3 33.7 NA
RX_SUMM_RADIATION_F=Radioisotopes 9 5 95.3 39.0 NA
RX_SUMM_RADIATION_F=Beam + Imp or Isotopes 9 6 24.0 16.1 NA
RX_SUMM_RADIATION_F=Radiation, NOS 114 79 25.7 15.6 35.7
RX_SUMM_RADIATION_F=Unknown 2196 598 NA 154.8 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_SUMM_RADIATION_F, data = data)
RX_SUMM_RADIATION_F=None
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 296059 16779 0.949 0.000383 0.948 0.950
24 255224 15967 0.896 0.000547 0.895 0.897
36 211644 12838 0.848 0.000662 0.846 0.849
48 174574 9535 0.807 0.000752 0.805 0.808
60 141423 7141 0.771 0.000829 0.769 0.773
120 33869 16672 0.628 0.001276 0.625 0.630
RX_SUMM_RADIATION_F=Beam Radiation
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6075 5005 0.557 0.00469 0.548 0.566
24 4029 1546 0.409 0.00472 0.400 0.419
36 2806 733 0.330 0.00463 0.321 0.339
48 2054 359 0.284 0.00458 0.275 0.293
60 1507 208 0.253 0.00456 0.244 0.262
120 253 312 0.167 0.00542 0.157 0.178
RX_SUMM_RADIATION_F=Radioactive Implants
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 36 6 0.861 0.0525 0.764 0.971
24 24 8 0.654 0.0755 0.522 0.820
36 17 2 0.589 0.0809 0.450 0.770
48 13 0 0.589 0.0809 0.450 0.770
60 11 1 0.543 0.0864 0.398 0.742
120 2 3 0.264 0.1302 0.100 0.694
RX_SUMM_RADIATION_F=Radioisotopes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7 1 0.889 0.105 0.706 1
24 6 1 0.762 0.148 0.521 1
36 6 0 0.762 0.148 0.521 1
48 4 2 0.508 0.177 0.257 1
60 4 0 0.508 0.177 0.257 1
RX_SUMM_RADIATION_F=Beam + Imp or Isotopes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7 2 0.778 0.139 0.549 1.000
24 5 2 0.556 0.166 0.310 0.997
36 3 2 0.333 0.157 0.132 0.840
48 3 0 0.333 0.157 0.132 0.840
60 2 0 0.333 0.157 0.132 0.840
RX_SUMM_RADIATION_F=Radiation, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 69 39 0.647 0.0456 0.564 0.743
24 50 14 0.513 0.0482 0.427 0.617
36 32 12 0.384 0.0485 0.300 0.491
48 25 4 0.332 0.0483 0.250 0.442
60 20 4 0.278 0.0474 0.199 0.389
120 6 3 0.208 0.0521 0.127 0.340
RX_SUMM_RADIATION_F=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1904 115 0.945 0.00501 0.935 0.955
24 1721 85 0.902 0.00662 0.889 0.915
36 1571 64 0.867 0.00764 0.852 0.882
48 1461 49 0.839 0.00835 0.823 0.856
60 1335 56 0.807 0.00911 0.789 0.825
120 442 198 0.639 0.01323 0.613 0.665
## Univariable Cox Proportional Hazard Model for: RX_SUMM_RADIATION_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_SUMM_RADIATION_F, data = data)
n= 362910, number of events= 89972
coef exp(coef) se(coef) z Pr(>|z|)
RX_SUMM_RADIATION_FBeam Radiation 1.83534 6.26725 0.01167 157.210 < 2e-16 ***
RX_SUMM_RADIATION_FRadioactive Implants 0.98420 2.67568 0.22364 4.401 1.08e-05 ***
RX_SUMM_RADIATION_FRadioisotopes 0.88426 2.42118 0.44723 1.977 0.048020 *
RX_SUMM_RADIATION_FBeam + Imp or Isotopes 1.38614 3.99938 0.40826 3.395 0.000686 ***
RX_SUMM_RADIATION_FRadiation, NOS 1.60332 4.96951 0.11257 14.243 < 2e-16 ***
RX_SUMM_RADIATION_FUnknown -0.08043 0.92272 0.04105 -1.959 0.050089 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
RX_SUMM_RADIATION_FBeam Radiation 6.2673 0.1596 6.1255 6.412
RX_SUMM_RADIATION_FRadioactive Implants 2.6757 0.3737 1.7261 4.148
RX_SUMM_RADIATION_FRadioisotopes 2.4212 0.4130 1.0077 5.817
RX_SUMM_RADIATION_FBeam + Imp or Isotopes 3.9994 0.2500 1.7967 8.902
RX_SUMM_RADIATION_FRadiation, NOS 4.9695 0.2012 3.9856 6.196
RX_SUMM_RADIATION_FUnknown 0.9227 1.0838 0.8514 1.000
Concordance= 0.552 (se = 0 )
Rsquare= 0.043 (max possible= 0.998 )
Likelihood ratio test= 15804 on 6 df, p=0
Wald test = 24931 on 6 df, p=0
Score (logrank) test = 32711 on 6 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: RX_SUMM_RADIATION_F



Lymphovascular Invasion
uni_var(test_var = "LYMPH_VASCULAR_INVASION_F", data_imp = data)
_________________________________________________
## LYMPH_VASCULAR_INVASION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ LYMPH_VASCULAR_INVASION_F, data = data)
159900 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
LYMPH_VASCULAR_INVASION_F=Neg_LymphVasc_Inv 145065 21475 95.93 95.05 NA
LYMPH_VASCULAR_INVASION_F=Pos_LumphVasc_Inv 7694 3337 48.66 46.06 51.9
LYMPH_VASCULAR_INVASION_F=N_A 50 30 8.87 6.87 NA
LYMPH_VASCULAR_INVASION_F=Unknown 50201 13034 94.62 94.03 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ LYMPH_VASCULAR_INVASION_F, data = data)
159900 observations deleted due to missingness
LYMPH_VASCULAR_INVASION_F=Neg_LymphVasc_Inv
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 120432 4744 0.964 0.000508 0.963 0.965
24 97371 5627 0.916 0.000793 0.915 0.918
36 70251 4462 0.868 0.001026 0.866 0.870
48 47908 3006 0.825 0.001246 0.822 0.827
60 29223 1942 0.784 0.001498 0.781 0.787
LYMPH_VASCULAR_INVASION_F=Pos_LumphVasc_Inv
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 5771 1247 0.830 0.00440 0.821 0.838
24 4077 1019 0.674 0.00567 0.663 0.686
36 2690 553 0.573 0.00626 0.561 0.585
48 1720 284 0.503 0.00675 0.490 0.516
60 969 134 0.455 0.00730 0.441 0.469
LYMPH_VASCULAR_INVASION_F=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 18 25 0.471 0.0734 0.3470 0.639
24 7 3 0.369 0.0783 0.2434 0.559
36 1 2 0.197 0.1007 0.0722 0.536
LYMPH_VASCULAR_INVASION_F=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 37970 6232 0.869 0.00155 0.866 0.872
24 30826 2671 0.804 0.00188 0.800 0.808
36 23552 1715 0.755 0.00211 0.750 0.759
48 17056 1098 0.715 0.00232 0.710 0.719
60 10962 668 0.681 0.00255 0.676 0.686
## Univariable Cox Proportional Hazard Model for: LYMPH_VASCULAR_INVASION_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ LYMPH_VASCULAR_INVASION_F, data = data)
n= 203010, number of events= 37876
(159900 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
LYMPH_VASCULAR_INVASION_FPos_LumphVasc_Inv 1.26944 3.55885 0.01862 68.17 <2e-16 ***
LYMPH_VASCULAR_INVASION_FN_A 2.54386 12.72866 0.18275 13.92 <2e-16 ***
LYMPH_VASCULAR_INVASION_FUnknown 0.60603 1.83314 0.01111 54.56 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
LYMPH_VASCULAR_INVASION_FPos_LumphVasc_Inv 3.559 0.28099 3.431 3.691
LYMPH_VASCULAR_INVASION_FN_A 12.729 0.07856 8.897 18.211
LYMPH_VASCULAR_INVASION_FUnknown 1.833 0.54551 1.794 1.873
Concordance= 0.609 (se = 0.001 )
Rsquare= 0.027 (max possible= 0.987 )
Likelihood ratio test= 5553 on 3 df, p=0
Wald test = 6417 on 3 df, p=0
Score (logrank) test = 7039 on 3 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: LYMPH_VASCULAR_INVASION_F



Endoscopic/Robotic
uni_var(test_var = "RX_HOSP_SURG_APPR_2010_F", data_imp = data)
_________________________________________________
## RX_HOSP_SURG_APPR_2010_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)
159900 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
RX_HOSP_SURG_APPR_2010_F=No_Surg 18689 8965 36.0 33.97 37.9
RX_HOSP_SURG_APPR_2010_F=Robot_Assist 148 26 NA NA NA
RX_HOSP_SURG_APPR_2010_F=Robot_to_Open 37 5 NA 56.71 NA
RX_HOSP_SURG_APPR_2010_F=Endo_Lap 441 109 NA 85.29 NA
RX_HOSP_SURG_APPR_2010_F=Endo_Lap_to_Open 170 31 NA 81.51 NA
RX_HOSP_SURG_APPR_2010_F=Open_Unknown 183492 28727 95.5 95.05 NA
RX_HOSP_SURG_APPR_2010_F=Unknown 33 13 14.8 6.24 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)
159900 observations deleted due to missingness
RX_HOSP_SURG_APPR_2010_F=No_Surg
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 10832 5927 0.665 0.00356 0.659 0.672
24 7778 1575 0.562 0.00385 0.555 0.570
36 5216 764 0.500 0.00404 0.492 0.508
48 3429 385 0.457 0.00425 0.449 0.465
60 2057 170 0.429 0.00452 0.420 0.438
RX_HOSP_SURG_APPR_2010_F=Robot_Assist
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 121 8 0.941 0.0204 0.902 0.981
24 99 6 0.890 0.0280 0.836 0.946
36 74 6 0.828 0.0357 0.761 0.901
48 48 3 0.791 0.0400 0.716 0.873
60 24 1 0.766 0.0458 0.681 0.861
RX_HOSP_SURG_APPR_2010_F=Robot_to_Open
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 28 3 0.908 0.0508 0.814 1
24 21 0 0.908 0.0508 0.814 1
36 17 0 0.908 0.0508 0.814 1
48 12 0 0.908 0.0508 0.814 1
60 2 2 0.692 0.1398 0.465 1
RX_HOSP_SURG_APPR_2010_F=Endo_Lap
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 342 38 0.906 0.0145 0.878 0.935
24 269 24 0.837 0.0190 0.801 0.876
36 189 24 0.753 0.0237 0.708 0.801
48 122 14 0.687 0.0275 0.635 0.743
60 66 8 0.636 0.0308 0.579 0.700
RX_HOSP_SURG_APPR_2010_F=Endo_Lap_to_Open
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 134 7 0.954 0.0169 0.922 0.988
24 119 4 0.924 0.0221 0.882 0.968
36 101 6 0.874 0.0289 0.819 0.932
48 73 3 0.845 0.0324 0.784 0.911
60 54 1 0.833 0.0341 0.769 0.903
RX_HOSP_SURG_APPR_2010_F=Open_Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 152722 6256 0.963 0.000460 0.962 0.964
24 123988 7707 0.911 0.000723 0.910 0.912
36 90891 5932 0.862 0.000925 0.860 0.864
48 62997 3983 0.818 0.001110 0.816 0.820
60 38949 2562 0.777 0.001317 0.775 0.780
RX_HOSP_SURG_APPR_2010_F=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 12 9 0.601 0.105 0.427 0.846
24 7 4 0.401 0.108 0.237 0.679
36 6 0 0.401 0.108 0.237 0.679
48 3 0 0.401 0.108 0.237 0.679
60 2 0 0.401 0.108 0.237 0.679
## Univariable Cox Proportional Hazard Model for: RX_HOSP_SURG_APPR_2010_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)
n= 203010, number of events= 37876
(159900 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
RX_HOSP_SURG_APPR_2010_FRobot_Assist -1.40546 0.24526 0.19640 -7.156 8.31e-13 ***
RX_HOSP_SURG_APPR_2010_FRobot_to_Open -1.52765 0.21705 0.44734 -3.415 0.000638 ***
RX_HOSP_SURG_APPR_2010_FEndo_Lap -0.96163 0.38227 0.09637 -9.979 < 2e-16 ***
RX_HOSP_SURG_APPR_2010_FEndo_Lap_to_Open -1.49545 0.22415 0.17993 -8.312 < 2e-16 ***
RX_HOSP_SURG_APPR_2010_FOpen_Unknown -1.53853 0.21470 0.01213 -126.816 < 2e-16 ***
RX_HOSP_SURG_APPR_2010_FUnknown 0.33426 1.39691 0.27755 1.204 0.228472
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
RX_HOSP_SURG_APPR_2010_FRobot_Assist 0.2453 4.0774 0.16689 0.3604
RX_HOSP_SURG_APPR_2010_FRobot_to_Open 0.2170 4.6073 0.09032 0.5216
RX_HOSP_SURG_APPR_2010_FEndo_Lap 0.3823 2.6160 0.31648 0.4617
RX_HOSP_SURG_APPR_2010_FEndo_Lap_to_Open 0.2241 4.4614 0.15754 0.3189
RX_HOSP_SURG_APPR_2010_FOpen_Unknown 0.2147 4.6577 0.20965 0.2199
RX_HOSP_SURG_APPR_2010_FUnknown 1.3969 0.7159 0.81080 2.4067
Concordance= 0.617 (se = 0.001 )
Rsquare= 0.057 (max possible= 0.987 )
Likelihood ratio test= 11999 on 6 df, p=0
Wald test = 16121 on 6 df, p=0
Score (logrank) test = 19537 on 6 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: RX_HOSP_SURG_APPR_2010_F



Surgery Radiation Sequence
uni_var(test_var = "SURG_RAD_SEQ", data_imp = data)
_________________________________________________
## SURG_RAD_SEQ
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURG_RAD_SEQ, data = data)
n events median 0.95LCL 0.95UCL
SURG_RAD_SEQ=Surg Alone 337579 73170 NA 164.60 NA
SURG_RAD_SEQ=Surg then Rad 6249 3820 32.16 30.78 33.77
SURG_RAD_SEQ=Rad Alone 5240 4377 6.14 5.88 6.51
SURG_RAD_SEQ=No Treatment 10837 7403 11.43 10.97 12.00
SURG_RAD_SEQ=Other 2891 1115 132.83 120.51 150.70
SURG_RAD_SEQ=Rad before and after Surg 17 14 9.07 4.01 24.11
SURG_RAD_SEQ=Rad then Surg 97 73 15.21 10.87 23.49
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURG_RAD_SEQ, data = data)
SURG_RAD_SEQ=Surg Alone
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 291152 11156 0.965 0.000328 0.964 0.965
24 251965 14780 0.914 0.000514 0.913 0.915
36 209336 12350 0.866 0.000642 0.865 0.867
48 172875 9282 0.825 0.000741 0.823 0.826
60 140127 7012 0.788 0.000826 0.787 0.790
120 33580 16468 0.642 0.001299 0.640 0.645
SURG_RAD_SEQ=Surg then Rad
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4522 1515 0.753 0.00550 0.743 0.764
24 3177 999 0.581 0.00642 0.568 0.593
36 2276 561 0.472 0.00666 0.459 0.485
48 1677 287 0.408 0.00675 0.395 0.421
60 1238 174 0.362 0.00684 0.348 0.375
120 209 262 0.237 0.00844 0.221 0.254
SURG_RAD_SEQ=Rad Alone
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1594 3476 0.3258 0.00657 0.3132 0.339
24 886 551 0.2074 0.00582 0.1963 0.219
36 552 180 0.1609 0.00546 0.1505 0.172
48 392 76 0.1369 0.00530 0.1269 0.148
60 280 38 0.1225 0.00524 0.1126 0.133
120 45 48 0.0874 0.00613 0.0762 0.100
SURG_RAD_SEQ=No Treatment
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4680 5246 0.490 0.00496 0.480 0.500
24 3105 1132 0.366 0.00490 0.356 0.376
36 2195 459 0.308 0.00482 0.298 0.317
48 1608 241 0.271 0.00480 0.261 0.280
60 1225 115 0.249 0.00482 0.240 0.259
120 272 191 0.191 0.00542 0.181 0.202
SURG_RAD_SEQ=Other
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2148 502 0.818 0.00736 0.804 0.832
24 1888 141 0.763 0.00820 0.747 0.779
36 1694 93 0.724 0.00871 0.707 0.741
48 1559 63 0.697 0.00904 0.679 0.715
60 1413 70 0.665 0.00940 0.646 0.683
120 459 214 0.524 0.01160 0.502 0.547
SURG_RAD_SEQ=Rad before and after Surg
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6 11 0.353 0.1159 0.1854 0.672
24 4 2 0.235 0.1029 0.0999 0.554
36 3 1 0.176 0.0925 0.0632 0.493
48 3 0 0.176 0.0925 0.0632 0.493
60 3 0 0.176 0.0925 0.0632 0.493
120 3 0 0.176 0.0925 0.0632 0.493
SURG_RAD_SEQ=Rad then Surg
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 55 41 0.571 0.0507 0.4798 0.680
24 34 18 0.378 0.0500 0.2914 0.490
36 23 7 0.295 0.0480 0.2148 0.406
48 20 0 0.295 0.0480 0.2148 0.406
60 16 1 0.279 0.0480 0.1991 0.391
120 4 6 0.109 0.0508 0.0439 0.272
## Univariable Cox Proportional Hazard Model for: SURG_RAD_SEQ
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURG_RAD_SEQ, data = data)
n= 362910, number of events= 89972
coef exp(coef) se(coef) z Pr(>|z|)
SURG_RAD_SEQSurg then Rad 1.46805 4.34076 0.01663 88.286 < 2e-16 ***
SURG_RAD_SEQRad Alone 2.66145 14.31699 0.01575 168.937 < 2e-16 ***
SURG_RAD_SEQNo Treatment 2.06172 7.85949 0.01226 168.104 < 2e-16 ***
SURG_RAD_SEQOther 0.54046 1.71679 0.03018 17.905 < 2e-16 ***
SURG_RAD_SEQRad before and after Surg 2.01488 7.49982 0.26729 7.538 4.77e-14 ***
SURG_RAD_SEQRad then Surg 1.93211 6.90408 0.11711 16.499 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SURG_RAD_SEQSurg then Rad 4.341 0.23037 4.202 4.485
SURG_RAD_SEQRad Alone 14.317 0.06985 13.882 14.766
SURG_RAD_SEQNo Treatment 7.859 0.12723 7.673 8.051
SURG_RAD_SEQOther 1.717 0.58248 1.618 1.821
SURG_RAD_SEQRad before and after Surg 7.500 0.13334 4.441 12.664
SURG_RAD_SEQRad then Surg 6.904 0.14484 5.488 8.685
Concordance= 0.605 (se = 0 )
Rsquare= 0.094 (max possible= 0.998 )
Likelihood ratio test= 35691 on 6 df, p=0
Wald test = 57107 on 6 df, p=0
Score (logrank) test = 86266 on 6 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: SURG_RAD_SEQ



Surgery Yes/No
uni_var(test_var = "SURGERY_YN", data_imp = data)
_________________________________________________
## SURGERY_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURGERY_YN, data = data)
n events median 0.95LCL 0.95UCL
SURGERY_YN=No 16214 11864 8.77 8.48 9.1
SURGERY_YN=Ukn 684 462 14.19 11.83 16.4
SURGERY_YN=Yes 346012 77646 165.39 164.57 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURGERY_YN, data = data)
SURGERY_YN=No
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6305 8805 0.434 0.00400 0.426 0.442
24 4021 1679 0.313 0.00383 0.305 0.320
36 2771 641 0.259 0.00372 0.251 0.266
48 2025 316 0.226 0.00367 0.219 0.234
60 1528 153 0.208 0.00367 0.201 0.215
120 323 243 0.157 0.00413 0.149 0.166
SURGERY_YN=Ukn
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 310 291 0.533 0.0201 0.495 0.574
24 205 79 0.392 0.0201 0.355 0.433
36 148 37 0.316 0.0197 0.280 0.357
48 120 15 0.282 0.0195 0.247 0.323
60 93 18 0.238 0.0190 0.204 0.279
120 22 21 0.172 0.0186 0.139 0.212
SURGERY_YN=Yes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 297542 12851 0.960 0.000342 0.960 0.961
24 256833 15865 0.907 0.000524 0.906 0.908
36 213160 12973 0.858 0.000648 0.857 0.859
48 175989 9618 0.817 0.000743 0.815 0.818
60 142681 7239 0.780 0.000824 0.779 0.782
120 34227 16925 0.635 0.001283 0.632 0.637
## Univariable Cox Proportional Hazard Model for: SURGERY_YN
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURGERY_YN, data = data)
n= 362910, number of events= 89972
coef exp(coef) se(coef) z Pr(>|z|)
SURGERY_YNUkn -0.27473 0.75977 0.04742 -5.793 6.91e-09 ***
SURGERY_YNYes -2.19889 0.11093 0.00998 -220.333 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SURGERY_YNUkn 0.7598 1.316 0.6923 0.8338
SURGERY_YNYes 0.1109 9.015 0.1088 0.1131
Concordance= 0.585 (se = 0 )
Rsquare= 0.08 (max possible= 0.998 )
Likelihood ratio test= 30337 on 2 df, p=0
Wald test = 49726 on 2 df, p=0
Score (logrank) test = 72791 on 2 df, p=0
no non-missing arguments to min; returning Infno non-missing arguments to max; returning -InfTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: SURGERY_YN



Radiation Yes/No
uni_var(test_var = "RADIATION_YN", data_imp = data)
_________________________________________________
## RADIATION_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RADIATION_YN, data = data)
2370 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
RADIATION_YN=No 348906 80900 164.7 164.5 NA
RADIATION_YN=Yes 11634 8300 15.7 15.1 16.4
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RADIATION_YN, data = data)
2370 observations deleted due to missingness
RADIATION_YN=No
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 296056 16607 0.950 0.000381 0.949 0.950
24 255222 15967 0.896 0.000546 0.895 0.897
36 211643 12837 0.848 0.000662 0.847 0.849
48 174573 9535 0.807 0.000752 0.806 0.809
60 141422 7141 0.771 0.000829 0.770 0.773
120 33869 16671 0.628 0.001277 0.626 0.631
RADIATION_YN=Yes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6194 5053 0.559 0.00465 0.550 0.569
24 4114 1571 0.412 0.00469 0.402 0.421
36 2864 749 0.331 0.00460 0.323 0.341
48 2099 365 0.286 0.00455 0.277 0.295
60 1544 213 0.254 0.00454 0.246 0.263
120 261 319 0.168 0.00540 0.158 0.179
## Univariable Cox Proportional Hazard Model for: RADIATION_YN
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RADIATION_YN, data = data)
n= 360540, number of events= 89200
(2370 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
RADIATION_YNYes 1.83188 6.24562 0.01161 157.9 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
RADIATION_YNYes 6.246 0.1601 6.105 6.389
Concordance= 0.552 (se = 0 )
Rsquare= 0.043 (max possible= 0.998 )
Likelihood ratio test= 15806 on 1 df, p=0
Wald test = 24917 on 1 df, p=0
Score (logrank) test = 32677 on 1 df, p=0
## Unadjusted Kaplan Meier Overall Survival Curve for: RADIATION_YN



Chemo Yes/No
uni_var(test_var = "CHEMO_YN", data_imp = data)
_________________________________________________
## CHEMO_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ CHEMO_YN, data = data)
n events median 0.95LCL 0.95UCL
CHEMO_YN=No 342669 80729 164.6 164.4 NA
CHEMO_YN=Yes 9216 6400 16.6 15.8 17.2
CHEMO_YN=Ukn 11025 2843 NA 160.7 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ CHEMO_YN, data = data)
CHEMO_YN=No
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 289704 17488 0.946 0.000396 0.945 0.947
24 249482 15703 0.893 0.000559 0.892 0.894
36 206545 12671 0.844 0.000674 0.843 0.846
48 170118 9390 0.803 0.000764 0.802 0.805
60 137619 7033 0.767 0.000842 0.765 0.769
120 32671 16359 0.623 0.001295 0.621 0.626
CHEMO_YN=Yes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 5063 3783 0.581 0.00521 0.571 0.591
24 3350 1399 0.415 0.00529 0.405 0.426
36 2470 559 0.342 0.00518 0.332 0.353
48 1923 272 0.303 0.00511 0.293 0.313
60 1520 133 0.280 0.00509 0.270 0.290
120 371 228 0.220 0.00551 0.210 0.231
CHEMO_YN=Ukn
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 9390 676 0.936 0.00239 0.931 0.940
24 8227 521 0.882 0.00321 0.876 0.888
36 7064 421 0.835 0.00378 0.827 0.842
48 6093 287 0.799 0.00417 0.791 0.807
60 5163 244 0.765 0.00452 0.756 0.774
120 1530 602 0.635 0.00635 0.622 0.647
## Univariable Cox Proportional Hazard Model for: CHEMO_YN
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ CHEMO_YN, data = data)
n= 362910, number of events= 89972
coef exp(coef) se(coef) z Pr(>|z|)
CHEMO_YNYes 1.670322 5.313878 0.013030 128.186 <2e-16 ***
CHEMO_YNUkn -0.003705 0.996302 0.019086 -0.194 0.846
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
CHEMO_YNYes 5.3139 0.1882 5.1799 5.451
CHEMO_YNUkn 0.9963 1.0037 0.9597 1.034
Concordance= 0.538 (se = 0 )
Rsquare= 0.029 (max possible= 0.998 )
Likelihood ratio test= 10647 on 2 df, p=0
Wald test = 16474 on 2 df, p=0
Score (logrank) test = 20670 on 2 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: CHEMO_YN



Treatment Yes/No
uni_var(test_var = "Tx_YN", data_imp = data)
_________________________________________________
## Tx_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ Tx_YN, data = data)
11025 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
Tx_YN=FALSE 8215 5411 12 11.2 12.8
Tx_YN=TRUE 343670 81718 165 164.4 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ Tx_YN, data = data)
11025 observations deleted due to missingness
Tx_YN=FALSE
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3583 3896 0.500 0.00571 0.489 0.511
24 2501 723 0.394 0.00570 0.383 0.405
36 1796 340 0.336 0.00567 0.325 0.347
48 1323 182 0.299 0.00568 0.288 0.310
60 1017 90 0.276 0.00573 0.265 0.288
120 212 166 0.208 0.00660 0.195 0.221
Tx_YN=TRUE
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 291184 17375 0.946 0.000396 0.946 0.947
24 250331 16379 0.891 0.000562 0.890 0.892
36 207219 12890 0.842 0.000677 0.841 0.843
48 170718 9480 0.801 0.000766 0.799 0.802
60 138122 7076 0.765 0.000843 0.763 0.766
120 32830 16421 0.621 0.001290 0.619 0.624
## Univariable Cox Proportional Hazard Model for: Tx_YN
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ Tx_YN, data = data)
n= 351885, number of events= 87129
(11025 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
Tx_YNTRUE -1.86336 0.15515 0.01408 -132.3 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
Tx_YNTRUE 0.1552 6.445 0.1509 0.1595
Concordance= 0.537 (se = 0 )
Rsquare= 0.03 (max possible= 0.998 )
Likelihood ratio test= 10747 on 1 df, p=0
Wald test = 17504 on 1 df, p=0
Score (logrank) test = 23183 on 1 df, p=0
## Unadjusted Kaplan Meier Overall Survival Curve for: Tx_YN



Tumor specific Variables
Node Size
Cox Proportional Hazard Ratio
Model #1
Full analysis
model_one <- coxph(Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 0)
~ SURG_RAD_SEQ + INSURANCE_F + AGE + SEX_F + RACE_F + INCOME_F + U_R_F +
FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F,
data = data)
X matrix deemed to be singular; variable 11
model_one %>% summary()
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURG_RAD_SEQ + INSURANCE_F + AGE + SEX_F + RACE_F +
INCOME_F + U_R_F + FACILITY_TYPE_F + FACILITY_LOCATION_F +
EDUCATION_F, data = data)
n= 310618, number of events= 84098
(52292 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
SURG_RAD_SEQSurg then Rad 1.175093 3.238443 0.017436 67.395 < 2e-16 ***
SURG_RAD_SEQRad Alone 2.488459 12.042700 0.016545 150.404 < 2e-16 ***
SURG_RAD_SEQNo Treatment 1.918921 6.813599 0.012812 149.775 < 2e-16 ***
SURG_RAD_SEQOther 0.527635 1.694918 0.031302 16.856 < 2e-16 ***
SURG_RAD_SEQRad before and after Surg 2.664354 14.358675 0.288773 9.226 < 2e-16 ***
SURG_RAD_SEQRad then Surg 1.634362 5.126184 0.126140 12.957 < 2e-16 ***
INSURANCE_FNone 0.816196 2.261881 0.023242 35.117 < 2e-16 ***
INSURANCE_FMedicaid 0.950788 2.587747 0.021840 43.535 < 2e-16 ***
INSURANCE_FMedicare 0.172193 1.187907 0.009972 17.268 < 2e-16 ***
INSURANCE_FOther Government 0.226541 1.254254 0.037211 6.088 1.14e-09 ***
INSURANCE_FUnknown NA NA 0.000000 NA NA
AGE 0.055292 1.056849 0.000389 142.146 < 2e-16 ***
SEX_FFemale -0.317842 0.727718 0.007424 -42.811 < 2e-16 ***
RACE_FBlack 0.402027 1.494852 0.035050 11.470 < 2e-16 ***
RACE_FOther/Unk -0.089698 0.914207 0.030340 -2.956 0.003112 **
RACE_FAsian 0.228528 1.256749 0.061677 3.705 0.000211 ***
INCOME_F$38,000 - $47,999 -0.047120 0.953973 0.012448 -3.785 0.000153 ***
INCOME_F$48,000 - $62,999 -0.080485 0.922669 0.013199 -6.098 1.08e-09 ***
INCOME_F$63,000 + -0.148064 0.862376 0.014837 -9.979 < 2e-16 ***
U_R_FUrban -0.035235 0.965379 0.010583 -3.329 0.000871 ***
U_R_FRural -0.011491 0.988575 0.024840 -0.463 0.643647
FACILITY_TYPE_FComprehensive Comm Ca Program -0.046446 0.954616 0.013827 -3.359 0.000782 ***
FACILITY_TYPE_FAcademic/Research Program -0.137317 0.871694 0.013803 -9.949 < 2e-16 ***
FACILITY_TYPE_FIntegrated Network Ca Program -0.019513 0.980677 0.016205 -1.204 0.228544
FACILITY_LOCATION_FMiddle Atlantic -0.004003 0.996005 0.016806 -0.238 0.811730
FACILITY_LOCATION_FSouth Atlantic -0.027797 0.972586 0.016273 -1.708 0.087608 .
FACILITY_LOCATION_FEast North Central 0.073783 1.076573 0.016696 4.419 9.90e-06 ***
FACILITY_LOCATION_FEast South Central 0.062075 1.064043 0.019632 3.162 0.001567 **
FACILITY_LOCATION_FWest North Central 0.033008 1.033559 0.019111 1.727 0.084140 .
FACILITY_LOCATION_FWest South Central 0.015189 1.015304 0.020821 0.729 0.465706
FACILITY_LOCATION_FMountain 0.021827 1.022067 0.021098 1.035 0.300893
FACILITY_LOCATION_FPacific -0.053757 0.947662 0.017688 -3.039 0.002372 **
EDUCATION_F13 - 20.9% -0.067335 0.934882 0.012642 -5.326 1.00e-07 ***
EDUCATION_F7 - 12.9% -0.117863 0.888818 0.013357 -8.824 < 2e-16 ***
EDUCATION_FLess than 7% -0.255588 0.774461 0.015259 -16.750 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SURG_RAD_SEQSurg then Rad 3.2384 0.30879 3.1296 3.3510
SURG_RAD_SEQRad Alone 12.0427 0.08304 11.6584 12.4396
SURG_RAD_SEQNo Treatment 6.8136 0.14677 6.6446 6.9869
SURG_RAD_SEQOther 1.6949 0.59000 1.5941 1.8022
SURG_RAD_SEQRad before and after Surg 14.3587 0.06964 8.1529 25.2882
SURG_RAD_SEQRad then Surg 5.1262 0.19508 4.0033 6.5639
INSURANCE_FNone 2.2619 0.44211 2.1612 2.3673
INSURANCE_FMedicaid 2.5877 0.38644 2.4793 2.7009
INSURANCE_FMedicare 1.1879 0.84182 1.1649 1.2114
INSURANCE_FOther Government 1.2543 0.79729 1.1660 1.3491
INSURANCE_FUnknown NA NA NA NA
AGE 1.0568 0.94621 1.0560 1.0577
SEX_FFemale 0.7277 1.37416 0.7172 0.7384
RACE_FBlack 1.4949 0.66896 1.3956 1.6012
RACE_FOther/Unk 0.9142 1.09384 0.8614 0.9702
RACE_FAsian 1.2567 0.79570 1.1136 1.4182
INCOME_F$38,000 - $47,999 0.9540 1.04825 0.9310 0.9775
INCOME_F$48,000 - $62,999 0.9227 1.08381 0.8991 0.9468
INCOME_F$63,000 + 0.8624 1.15959 0.8377 0.8878
U_R_FUrban 0.9654 1.03586 0.9456 0.9856
U_R_FRural 0.9886 1.01156 0.9416 1.0379
FACILITY_TYPE_FComprehensive Comm Ca Program 0.9546 1.04754 0.9291 0.9808
FACILITY_TYPE_FAcademic/Research Program 0.8717 1.14719 0.8484 0.8956
FACILITY_TYPE_FIntegrated Network Ca Program 0.9807 1.01970 0.9500 1.0123
FACILITY_LOCATION_FMiddle Atlantic 0.9960 1.00401 0.9637 1.0294
FACILITY_LOCATION_FSouth Atlantic 0.9726 1.02819 0.9421 1.0041
FACILITY_LOCATION_FEast North Central 1.0766 0.92887 1.0419 1.1124
FACILITY_LOCATION_FEast South Central 1.0640 0.93981 1.0239 1.1058
FACILITY_LOCATION_FWest North Central 1.0336 0.96753 0.9956 1.0730
FACILITY_LOCATION_FWest South Central 1.0153 0.98493 0.9747 1.0576
FACILITY_LOCATION_FMountain 1.0221 0.97841 0.9807 1.0652
FACILITY_LOCATION_FPacific 0.9477 1.05523 0.9154 0.9811
EDUCATION_F13 - 20.9% 0.9349 1.06965 0.9120 0.9583
EDUCATION_F7 - 12.9% 0.8888 1.12509 0.8659 0.9124
EDUCATION_FLess than 7% 0.7745 1.29122 0.7516 0.7980
Concordance= 0.767 (se = 0.001 )
Rsquare= 0.226 (max possible= 0.999 )
Likelihood ratio test= 79560 on 34 df, p=0
Wald test = 91341 on 34 df, p=0
Score (logrank) test = 120014 on 34 df, p=0
Summary of Model
model_one %>%
tidy(., exponentiate = TRUE) %>%
select(term, estimate, conf.low, conf.high, p.value) %>%
rename(Variable = term,
Hazard_Ratio = estimate) %>%
tbl_df %>%
print(n = nrow(.))
Predictors of Surgery
fit_surg <- glm(SURG_TF ~ AGE_F + SEX_F + RACE_F + INCOME_F + U_R_F +
FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + EXPN_GROUP,
data = data %>% filter(SURGERY_YN != "Ukn") %>% droplevels() %>% mutate(SURGERY_YN = as.logical(SURGERY_YN)))
summary(fit_surg)
Call:
glm(formula = SURG_TF ~ AGE_F + SEX_F + RACE_F + INCOME_F + U_R_F +
FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + EXPN_GROUP,
data = data %>% filter(SURGERY_YN != "Ukn") %>% droplevels() %>%
mutate(SURGERY_YN = as.logical(SURGERY_YN)))
Deviance Residuals:
Min 1Q Median 3Q Max
-0.99423 0.03190 0.04440 0.05726 0.21648
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.9081399 0.0028620 317.304 < 2e-16 ***
AGE_F(54,64] -0.0072041 0.0010786 -6.679 2.41e-11 ***
AGE_F(64,74] -0.0081639 0.0010934 -7.466 8.27e-14 ***
AGE_F(74,100] -0.0200655 0.0010744 -18.675 < 2e-16 ***
SEX_FFemale 0.0109075 0.0007849 13.896 < 2e-16 ***
RACE_FBlack -0.0929640 0.0049996 -18.594 < 2e-16 ***
RACE_FOther/Unk -0.0006775 0.0030515 -0.222 0.824293
RACE_FAsian -0.0518461 0.0074247 -6.983 2.90e-12 ***
INCOME_F$38,000 - $47,999 0.0041661 0.0015199 2.741 0.006124 **
INCOME_F$48,000 - $62,999 0.0085346 0.0015873 5.377 7.59e-08 ***
INCOME_F$63,000 + 0.0110084 0.0017396 6.328 2.49e-10 ***
U_R_FUrban 0.0050951 0.0012133 4.199 2.68e-05 ***
U_R_FRural 0.0025631 0.0029320 0.874 0.382028
FACILITY_TYPE_FComprehensive Comm Ca Program 0.0246966 0.0016691 14.796 < 2e-16 ***
FACILITY_TYPE_FAcademic/Research Program 0.0392540 0.0016438 23.880 < 2e-16 ***
FACILITY_TYPE_FIntegrated Network Ca Program 0.0254413 0.0019155 13.282 < 2e-16 ***
FACILITY_LOCATION_FMiddle Atlantic -0.0034108 0.0018257 -1.868 0.061737 .
FACILITY_LOCATION_FSouth Atlantic -0.0059582 0.0018019 -3.307 0.000944 ***
FACILITY_LOCATION_FEast North Central -0.0053532 0.0018364 -2.915 0.003556 **
FACILITY_LOCATION_FEast South Central -0.0035544 0.0022293 -1.594 0.110845
FACILITY_LOCATION_FWest North Central -0.0093962 0.0020616 -4.558 5.18e-06 ***
FACILITY_LOCATION_FWest South Central -0.0253217 0.0023654 -10.705 < 2e-16 ***
FACILITY_LOCATION_FMountain -0.0120912 0.0023058 -5.244 1.57e-07 ***
FACILITY_LOCATION_FPacific -0.0098457 0.0019394 -5.077 3.84e-07 ***
EDUCATION_F13 - 20.9% 0.0067553 0.0015322 4.409 1.04e-05 ***
EDUCATION_F7 - 12.9% 0.0114129 0.0015965 7.149 8.78e-13 ***
EDUCATION_FLess than 7% 0.0162856 0.0017663 9.220 < 2e-16 ***
EXPN_GROUPPre-Expansion 0.0086333 0.0011013 7.840 4.54e-15 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for gaussian family taken to be 0.04499771)
Null deviance: 14065 on 309989 degrees of freedom
Residual deviance: 13948 on 309962 degrees of freedom
(52236 observations deleted due to missingness)
AIC: -81580
Number of Fisher Scoring iterations: 2
exp(cbind("Odds ratio" = coef(fit_surg), confint.default(fit_surg, level = 0.95)))
Odds ratio 2.5 % 97.5 %
(Intercept) 2.4797057 2.4658347 2.4936548
AGE_F(54,64] 0.9928218 0.9907252 0.9949229
AGE_F(64,74] 0.9918693 0.9897459 0.9939973
AGE_F(74,100] 0.9801345 0.9780726 0.9822007
SEX_FFemale 1.0109672 1.0094131 1.0125237
RACE_FBlack 0.9112263 0.9023407 0.9201994
RACE_FOther/Unk 0.9993227 0.9933638 1.0053174
RACE_FAsian 0.9494750 0.9357581 0.9633928
INCOME_F$38,000 - $47,999 1.0041748 1.0011879 1.0071707
INCOME_F$48,000 - $62,999 1.0085711 1.0054382 1.0117137
INCOME_F$63,000 + 1.0110692 1.0076277 1.0145225
U_R_FUrban 1.0051081 1.0027208 1.0075010
U_R_FRural 1.0025663 0.9968215 1.0083443
FACILITY_TYPE_FComprehensive Comm Ca Program 1.0250041 1.0216563 1.0283628
FACILITY_TYPE_FAcademic/Research Program 1.0400346 1.0366892 1.0433908
FACILITY_TYPE_FIntegrated Network Ca Program 1.0257677 1.0219238 1.0296261
FACILITY_LOCATION_FMiddle Atlantic 0.9965950 0.9930353 1.0001676
FACILITY_LOCATION_FSouth Atlantic 0.9940596 0.9905551 0.9975764
FACILITY_LOCATION_FEast North Central 0.9946611 0.9910876 0.9982476
FACILITY_LOCATION_FEast South Central 0.9964519 0.9921076 1.0008152
FACILITY_LOCATION_FWest North Central 0.9906478 0.9866529 0.9946588
FACILITY_LOCATION_FWest South Central 0.9749962 0.9704864 0.9795270
FACILITY_LOCATION_FMountain 0.9879816 0.9835266 0.9924568
FACILITY_LOCATION_FPacific 0.9902026 0.9864458 0.9939737
EDUCATION_F13 - 20.9% 1.0067782 1.0037594 1.0098061
EDUCATION_F7 - 12.9% 1.0114782 1.0083182 1.0146482
EDUCATION_FLess than 7% 1.0164189 1.0129062 1.0199438
EXPN_GROUPPre-Expansion 1.0086707 1.0064959 1.0108502
Predictors of Metastasis at Time of Diagnosis, limit to those cases where data
about expansion status is available (> Age 39, non-ambiguous status states)
fit_mets <- glm(mets_at_dx_F ~ AGE_F + SEX_F + RACE_F + INCOME_F + U_R_F +
FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + EXPN_GROUP,
data = no_Excludes)
summary(fit_mets)
Call:
glm(formula = mets_at_dx_F ~ AGE_F + SEX_F + RACE_F + INCOME_F +
U_R_F + FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F +
EXPN_GROUP, data = no_Excludes)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.08216 -0.02878 -0.02092 -0.01372 1.00266
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.0495593 0.0019342 25.623 < 2e-16 ***
AGE_F(54,64] 0.0049569 0.0007282 6.807 1.00e-11 ***
AGE_F(64,74] 0.0057453 0.0007388 7.777 7.48e-15 ***
AGE_F(74,100] 0.0084310 0.0007270 11.598 < 2e-16 ***
SEX_FFemale -0.0085557 0.0005312 -16.106 < 2e-16 ***
RACE_FBlack 0.0223772 0.0033314 6.717 1.86e-11 ***
RACE_FOther/Unk -0.0016802 0.0020669 -0.813 0.416276
RACE_FAsian 0.0237505 0.0050021 4.748 2.05e-06 ***
INCOME_F$38,000 - $47,999 -0.0010712 0.0010236 -1.046 0.295348
INCOME_F$48,000 - $62,999 -0.0028864 0.0010698 -2.698 0.006975 **
INCOME_F$63,000 + -0.0063578 0.0011735 -5.418 6.04e-08 ***
U_R_FUrban -0.0022755 0.0008187 -2.780 0.005444 **
U_R_FRural 0.0018322 0.0019826 0.924 0.355399
FACILITY_TYPE_FComprehensive Comm Ca Program -0.0064353 0.0011296 -5.697 1.22e-08 ***
FACILITY_TYPE_FAcademic/Research Program -0.0098655 0.0011124 -8.869 < 2e-16 ***
FACILITY_TYPE_FIntegrated Network Ca Program -0.0025561 0.0012934 -1.976 0.048125 *
FACILITY_LOCATION_FMiddle Atlantic 0.0017956 0.0012371 1.451 0.146646
FACILITY_LOCATION_FSouth Atlantic 0.0049151 0.0012196 4.030 5.58e-05 ***
FACILITY_LOCATION_FEast North Central 0.0045108 0.0012441 3.626 0.000288 ***
FACILITY_LOCATION_FEast South Central 0.0053204 0.0015035 3.539 0.000402 ***
FACILITY_LOCATION_FWest North Central 0.0015550 0.0013967 1.113 0.265582
FACILITY_LOCATION_FWest South Central 0.0146708 0.0015962 9.191 < 2e-16 ***
FACILITY_LOCATION_FMountain 0.0084461 0.0015581 5.421 5.94e-08 ***
FACILITY_LOCATION_FPacific -0.0015244 0.0013144 -1.160 0.246137
EDUCATION_F13 - 20.9% -0.0004141 0.0010313 -0.402 0.688029
EDUCATION_F7 - 12.9% -0.0032919 0.0010757 -3.060 0.002212 **
EDUCATION_FLess than 7% -0.0051212 0.0011914 -4.299 1.72e-05 ***
EXPN_GROUPPre-Expansion -0.0224662 0.0007473 -30.063 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for gaussian family taken to be 0.02156817)
Null deviance: 7052.0 on 325127 degrees of freedom
Residual deviance: 7011.8 on 325100 degrees of freedom
(10945 observations deleted due to missingness)
AIC: -324662
Number of Fisher Scoring iterations: 2
exp(cbind("Odds ratio" = coef(fit_mets), confint.default(fit_surg, level = 0.95)))
Odds ratio 2.5 % 97.5 %
(Intercept) 1.0508079 2.4658347 2.4936548
AGE_F(54,64] 1.0049692 0.9907252 0.9949229
AGE_F(64,74] 1.0057619 0.9897459 0.9939973
AGE_F(74,100] 1.0084667 0.9780726 0.9822007
SEX_FFemale 0.9914808 1.0094131 1.0125237
RACE_FBlack 1.0226295 0.9023407 0.9201994
RACE_FOther/Unk 0.9983212 0.9933638 1.0053174
RACE_FAsian 1.0240347 0.9357581 0.9633928
INCOME_F$38,000 - $47,999 0.9989294 1.0011879 1.0071707
INCOME_F$48,000 - $62,999 0.9971178 1.0054382 1.0117137
INCOME_F$63,000 + 0.9936624 1.0076277 1.0145225
U_R_FUrban 0.9977271 1.0027208 1.0075010
U_R_FRural 1.0018339 0.9968215 1.0083443
FACILITY_TYPE_FComprehensive Comm Ca Program 0.9935853 1.0216563 1.0283628
FACILITY_TYPE_FAcademic/Research Program 0.9901830 1.0366892 1.0433908
FACILITY_TYPE_FIntegrated Network Ca Program 0.9974472 1.0219238 1.0296261
FACILITY_LOCATION_FMiddle Atlantic 1.0017972 0.9930353 1.0001676
FACILITY_LOCATION_FSouth Atlantic 1.0049272 0.9905551 0.9975764
FACILITY_LOCATION_FEast North Central 1.0045209 0.9910876 0.9982476
FACILITY_LOCATION_FEast South Central 1.0053346 0.9921076 1.0008152
FACILITY_LOCATION_FWest North Central 1.0015562 0.9866529 0.9946588
FACILITY_LOCATION_FWest South Central 1.0147790 0.9704864 0.9795270
FACILITY_LOCATION_FMountain 1.0084818 0.9835266 0.9924568
FACILITY_LOCATION_FPacific 0.9984767 0.9864458 0.9939737
EDUCATION_F13 - 20.9% 0.9995860 1.0037594 1.0098061
EDUCATION_F7 - 12.9% 0.9967135 1.0083182 1.0146482
EDUCATION_FLess than 7% 0.9948919 1.0129062 1.0199438
EXPN_GROUPPre-Expansion 0.9777843 1.0064959 1.0108502
LS0tCnRpdGxlOiAiRGVybSBOQ0RCIgphdXRob3I6ICJSYW1pZSBGYXRoeSIKZGF0ZTogIjEwLzcvMjAxOSIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICB0aGVtZTogdW5pdGVkCiAgICB0b2M6IHllcwogICAgdG9jX2Zsb2F0OiB5ZXMKICBodG1sX2RvY3VtZW50OgogICAgdG9jOiB5ZXMKLS0tCgoKCmBgYHtyIGNodW5rMSwgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0KCmxpYnJhcnkoImdncGxvdDIiKQpsaWJyYXJ5KCJkcGx5ciIpCmxpYnJhcnkoInRpZHlyIikKbGlicmFyeSgia25pdHIiKQpsaWJyYXJ5KCJ0YWJsZW9uZSIpCmxpYnJhcnkoImZvcmNhdHMiKQpsaWJyYXJ5KCJzdXJ2aXZhbCIpCmxpYnJhcnkoIm5wc3VydiIpCmxpYnJhcnkoImJyb29tIikKbGlicmFyeSgidGliYmxlIikKbGlicmFyeSgicmVhZHIiKQpsaWJyYXJ5KCJzdXJ2bWluZXIiKQpsaWJyYXJ5KCJzdHJpbmdyIikKCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvPVRSVUUsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9VFJVRSkKJyUhaW4lJyA8LSBmdW5jdGlvbih4LHkpISgnJWluJScoeCx5KSkKYGBgCgpgYGB7ciBjaHVuazIsIGNhY2hlPVRSVUUsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsIHJlc3VsdHM9J2hpZGUnfQpjb2wud2lkdGggPC0gYygzNywgMTAsIDEsIDEsIDMsIDEsIDIsIDEsIDIsIDEsIDEsIDEsIDEsIDEsIDEsIDgsIDIsIDIsIDIsIDQsIDQsIDEsIDQsIDEsIDEsCiAgICAgICAgICAgICAgIDEsIDMsIDIsIDIsIDgsIDIsIDUsIDUsIDUsIDQsIDUsIDUsIDUsNCwgMiwgMSwgMiwgMSwgMywgMSwgMSwgMSwgMSwgMSwgMSwgMywKICAgICAgICAgICAgICAgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgNiwgOCwKICAgICAgICAgICAgICAgOCwgOCwgMiwgMSwgMSwgMSwgMSwgOCwgMSwgMSwgOCwgMSwgMSwgMiwgMiwgNSwgMiwgNSwgMywgMSwgMywgMSwgOCwgOCwgMiwgOCwKICAgICAgICAgICAgICAgMiwgOCwgMiwgMiwgMSwgOCwgMSwgMSwgMSwgMSwgMSwgOCwgMSwgMiwgMiwgMiwgMiwgMiwgMSwgMSwgMSwgMiwgMSwgMywgMSwgMSwKICAgICAgICAgICAgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSkKCmNvbC5uYW1lcy5hYnIgPC0gYygiUFVGX0NBU0VfSUQiLCAiUFVGX0ZBQ0lMSVRZX0lEIiwgIkZBQ0lMSVRZX1RZUEVfQ0QiLCAiRkFDSUxJVFlfTE9DQVRJT05fQ0QiLAogICAgICAgICAgICAgICAgICAgIkFHRSIsICJTRVgiLCAiUkFDRSIsICJTUEFOSVNIX0hJU1BBTklDX09SSUdJTiIsICJJTlNVUkFOQ0VfU1RBVFVTIiwKICAgICAgICAgICAgICAgICAgICJNRURfSU5DX1FVQVJfMDAiLCAiTk9fSFNEX1FVQVJfMDAiLCAiVVJfQ0RfMDMiLCAiTUVEX0lOQ19RVUFSXzEyIiwgIk5PX0hTRF9RVUFSXzEyIiwKICAgICAgICAgICAgICAgICAgICJVUl9DRF8xMyIsICJDUk9XRkxZIiwgIkNEQ0NfVE9UQUxfQkVTVCIsICJTRVFVRU5DRV9OVU1CRVIiLCAiQ0xBU1NfT0ZfQ0FTRSIsCiAgICAgICAgICAgICAgICAgICAiWUVBUl9PRl9ESUFHTk9TSVMiLCAiUFJJTUFSWV9TSVRFIiwgIkxBVEVSQUxJVFkiLCAiSElTVE9MT0dZIiwgIkJFSEFWSU9SIiwgIkdSQURFIiwKICAgICAgICAgICAgICAgICAgICJESUFHTk9TVElDX0NPTkZJUk1BVElPTiIsICJUVU1PUl9TSVpFIiwgIlJFR0lPTkFMX05PREVTX1BPU0lUSVZFIiwKICAgICAgICAgICAgICAgICAgICJSRUdJT05BTF9OT0RFU19FWEFNSU5FRCIsICJEWF9TVEFHSU5HX1BST0NfREFZUyIsICJSWF9TVU1NX0RYU1RHX1BST0MiLCAiVE5NX0NMSU5fVCIsCiAgICAgICAgICAgICAgICAgICAiVE5NX0NMSU5fTiIsICJUTk1fQ0xJTl9NIiwgIlROTV9DTElOX1NUQUdFX0dST1VQIiwgIlROTV9QQVRIX1QiLCAiVE5NX1BBVEhfTiIsICJUTk1fUEFUSF9NIiwKICAgICAgICAgICAgICAgICAgICJUTk1fUEFUSF9TVEFHRV9HUk9VUCIsICJUTk1fRURJVElPTl9OVU1CRVIiLCAiQU5BTFlUSUNfU1RBR0VfR1JPVVAiLCAiQ1NfTUVUU19BVF9EWCIsCiAgICAgICAgICAgICAgICAgICAiQ1NfTUVUU19FVkFMIiwgIkNTX0VYVEVOU0lPTiIsICJDU19UVU1PUl9TSVpFRVhUX0VWQUwiLCAiQ1NfTUVUU19EWF9CT05FIiwgIkNTX01FVFNfRFhfQlJBSU4iLAogICAgICAgICAgICAgICAgICAgIkNTX01FVFNfRFhfTElWRVIiLCAiQ1NfTUVUU19EWF9MVU5HIiwgIkxZTVBIX1ZBU0NVTEFSX0lOVkFTSU9OIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMSIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8yIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMyIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzQiLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfNSIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzYiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl83IiwKICAgICAgICAgICAgICAgICAgICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzgiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl85IiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTAiLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTEiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xMiIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzEzIiwKICAgICAgICAgICAgICAgICAgICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzE0IiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTUiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xNiIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xNyIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzE4IiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTkiLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMjAiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8yMSIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzIyIiwKICAgICAgICAgICAgICAgICAgICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzIzIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMjQiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8yNSIsCiAgICAgICAgICAgICAgICAgICAiQ1NfVkVSU0lPTl9MQVRFU1QiLCAiRFhfUlhfU1RBUlRFRF9EQVlTIiwgIkRYX1NVUkdfU1RBUlRFRF9EQVlTIiwgIkRYX0RFRlNVUkdfU1RBUlRFRF9EQVlTIiwKICAgICAgICAgICAgICAgICAgICJSWF9TVU1NX1NVUkdfUFJJTV9TSVRFIiwgIlJYX0hPU1BfU1VSR19BUFBSXzIwMTAiLCAiUlhfU1VNTV9TVVJHSUNBTF9NQVJHSU5TIiwKICAgICAgICAgICAgICAgICAgICJSWF9TVU1NX1NDT1BFX1JFR19MTl9TVVIiLCAiUlhfU1VNTV9TVVJHX09USF9SRUdESVMiLCAiU1VSR19ESVNDSEFSR0VfREFZUyIsICJSRUFETV9IT1NQXzMwX0RBWVMiLAogICAgICAgICAgICAgICAgICAgIlJFQVNPTl9GT1JfTk9fU1VSR0VSWSIsICJEWF9SQURfU1RBUlRFRF9EQVlTIiwgIlJYX1NVTU1fUkFESUFUSU9OIiwgIlJBRF9MT0NBVElPTl9PRl9SWCIsCiAgICAgICAgICAgICAgICAgICAiUkFEX1RSRUFUX1ZPTCIsICJSQURfUkVHSU9OQUxfUlhfTU9EQUxJVFkiLCAiUkFEX1JFR0lPTkFMX0RPU0VfQ0dZIiwgIlJBRF9CT09TVF9SWF9NT0RBTElUWSIsCiAgICAgICAgICAgICAgICAgICAiUkFEX0JPT1NUX0RPU0VfQ0dZIiwgIlJBRF9OVU1fVFJFQVRfVk9MIiwgIlJYX1NVTU1fU1VSR1JBRF9TRVEiLCAiUkFEX0VMQVBTRURfUlhfREFZUyIsCiAgICAgICAgICAgICAgICAgICAiUkVBU09OX0ZPUl9OT19SQURJQVRJT04iLCAiRFhfU1lTVEVNSUNfU1RBUlRFRF9EQVlTIiwgIkRYX0NIRU1PX1NUQVJURURfREFZUyIsICJSWF9TVU1NX0NIRU1PIiwKICAgICAgICAgICAgICAgICAgICJEWF9IT1JNT05FX1NUQVJURURfREFZUyIsICJSWF9TVU1NX0hPUk1PTkUiLCAiRFhfSU1NVU5PX1NUQVJURURfREFZUyIsICJSWF9TVU1NX0lNTVVOT1RIRVJBUFkiLAogICAgICAgICAgICAgICAgICAgIlJYX1NVTU1fVFJOU1BMTlRfRU5ETyIsICJSWF9TVU1NX1NZU1RFTUlDX1NVUl9TRVEiLCAiRFhfT1RIRVJfU1RBUlRFRF9EQVlTIiwgIlJYX1NVTU1fT1RIRVIiLAogICAgICAgICAgICAgICAgICAgIlBBTExJQVRJVkVfQ0FSRSIsICJSWF9TVU1NX1RSRUFUTUVOVF9TVEFUVVMiLCAiUFVGXzMwX0RBWV9NT1JUX0NEIiwgIlBVRl85MF9EQVlfTU9SVF9DRCIsCiAgICAgICAgICAgICAgICAgICAiRFhfTEFTVENPTlRBQ1RfREVBVEhfTU9OVEhTIiwgIlBVRl9WSVRBTF9TVEFUVVMiLCAiUlhfSE9TUF9TVVJHX1BSSU1fU0lURSIsICJSWF9IT1NQX0NIRU1PIiwKICAgICAgICAgICAgICAgICAgICJSWF9IT1NQX0lNTVVOT1RIRVJBUFkiLCAiUlhfSE9TUF9IT1JNT05FIiwgIlJYX0hPU1BfT1RIRVIiLCAiUFVGX01VTFRfU09VUkNFIiwgIlJFRkVSRU5DRV9EQVRFX0ZMQUciLAogICAgICAgICAgICAgICAgICAgIlJYX1NVTU1fU0NPUEVfUkVHX0xOXzIwMTIiLCAiUlhfSE9TUF9EWFNUR19QUk9DIiwgIlBBTExJQVRJVkVfQ0FSRV9IT1NQIiwgIlRVTU9SX1NJWkVfU1VNTUFSWSIsCiAgICAgICAgICAgICAgICAgICAiTUVUU19BVF9EWF9PVEhFUiIsICJNRVRTX0FUX0RYX0RJU1RBTlRfTE4iLCAiTUVUU19BVF9EWF9CT05FIiwgIk1FVFNfQVRfRFhfQlJBSU4iLAogICAgICAgICAgICAgICAgICAgIk1FVFNfQVRfRFhfTElWRVIiLCAiTUVUU19BVF9EWF9MVU5HIiwgIk5PX0hTRF9RVUFSXzE2IiwgIk1FRF9JTkNfUVVBUl8xNiIsICJNRURJQ0FJRF9FWFBOX0NPREUiKQoKCgojUmVhZCBpbiBkYXRhIGZvciBlYWNoIHN1YnNpdGUKbGlwIDwtIHJlYWRfZndmKCdOQ0RCUFVGX0xpcC4zLjIwMTYuMC5kYXQnLCAKICAgICAgICAgICAgICAgICAgICAgICBmd2Zfd2lkdGhzKGNvbC53aWR0aCwgY29sX25hbWVzID0gY29sLm5hbWVzLmFiciksCiAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyguZGVmYXVsdCA9IGNvbF9jaGFyYWN0ZXIoKSkpCgptZWxhbm9tYSA8LSByZWFkX2Z3ZignTkNEQlBVRl9NZWxhbm9tYS4zLjIwMTYuMC5kYXQnLCAKICAgICAgICAgICAgICAgICAgICAgICBmd2Zfd2lkdGhzKGNvbC53aWR0aCwgY29sX25hbWVzID0gY29sLm5hbWVzLmFiciksCiAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyguZGVmYXVsdCA9IGNvbF9jaGFyYWN0ZXIoKSkpCiAgICAgICAgICAgICAgICAgICAgICAgCnNraW4gPC0gcmVhZF9md2YoJ05DREJQVUZfT3RTa2luLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCmhvZGdleHRyIDwtIHJlYWRfZndmKCdOQ0RCUFVGX0hvZGdFeHRyLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCmhvZGduZGFsIDwtIHJlYWRfZndmKCdOQ0RCUFVGX0hvZGdOZGFsLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCk5ITG5kYWwgPC0gcmVhZF9md2YoJ05DREJQVUZfTkhMTmRhbC4zLjIwMTYuMC5kYXQnLCAKICAgICAgICAgICAgICAgICAgICAgICBmd2Zfd2lkdGhzKGNvbC53aWR0aCwgY29sX25hbWVzID0gY29sLm5hbWVzLmFiciksCiAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyguZGVmYXVsdCA9IGNvbF9jaGFyYWN0ZXIoKSkpCgoKCiNDb21iaW5lIGRhdGEgZm9yIGFsbCBzdWJzaXRlcwpkYXQgPC0gYmluZF9yb3dzKGxpcCwgbWVsYW5vbWEsIHNraW4sIGhvZGdleHRyLCBob2RnbmRhbCwgTkhMbmRhbCkKCnJtKGxpcCwgbWVsYW5vbWEsIHNraW4sIGhvZGdleHRyLCBob2RnbmRhbCwgTkhMbmRhbCkKCgojb25seSB3b3JrcyBmb3IgbWVsYW5vbWEKcHJpbV9zaXRlX3RleHQgPC0gZGF0YV9mcmFtZShQUklNQVJZX1NJVEUgPSBjKCJDNDQwIiwKIkM0NDEiLAoiQzQ0MiIsCiJDNDQzIiwKIkM0NDQiLAoiQzQ0NSIsCiJDNDQ2IiwKIkM0NDciLAoiQzQ0OCIsCiJDNDQ5IiwgCiJDNTEwIiwKIkM1MTEiLAoiQzUxMiIsCiJDNTE4IiwKIkM1MTkiLAoiQzYwMCIsCiJDNjAxIiwKIkM2MDIiLAoiQzYwOCIsCiJDNjA5IiwKIkM2MzIiKSwgICAgICAgICAgICAgICAgClNJVEVfVEVYVCA9IGMoCiJDNDQuMCBTa2luIG9mIGxpcCwgTk9TIiwKIkM0NC4xIEV5ZWxpZCIsCiJDNDQuMiBFeHRlcm5hbCBlYXIiLAoiQzQ0LjMgU2tpbiBvZiBlYXIgYW5kIHVuc3BlY2lmaWVkIHBhcnRzIG9mIGZhY2UiLAoiQzQ0LjQgU2tpbiBvZiBzY2FscCBhbmQgbmVjayIsCiJDNDQuNSBTa2luIG9mIHRydW5rIiwKIkM0NC42IFNraW4gb2YgdXBwZXIgbGltYiBhbmQgc2hvdWxkZXIiLAoiQzQ0LjcgU2tpbiBvZiBsb3dlciBsaW1iIGFuZCBoaXAiLAoiQzQ0LjggT3ZlcmxhcHBpbmcgbGVzaW9uIG9mIHNraW4iLAoiQzQ0LjkgU2tpbiwgTk9TIiwgCiJDNTEuMCBMYWJpdW0gbWFqdXMiLAoiQzUxLjEgTGFiaXVtIG1pbnVzIiwKIkM1MS4yIENsaXRvcmlzIiwKIkM1MS44IE92ZXJsYXBwaW5nIGxlc2lvbiBvZiB2dWx2YSIsCiJDNTEuOSBWdWx2YSwgTk9TIiwKIkM2MC4wIFByZXB1Y2UiLAoiQzYwLjEgR2xhbnMgcGVuaXMiLAoiQzYwLjIgQm9keSBvZiBwZW5pcyIsCiJDNjAuOCBPdmVybGFwcGluZyBsZXNpb24gb2YgcGVuaXMiLAoiQzYwLjkgUGVuaXMiLAoiQzYzLjIgU2Nyb3R1bSwgTk9TIikpCgoKZGF0IDwtIG1lcmdlKGRhdCwgcHJpbV9zaXRlX3RleHQsIGJ5ID0gIlBSSU1BUllfU0lURSIsIGFsbC54ID0gVFJVRSkgCiAKcm0ocHJpbV9zaXRlX3RleHQpCgojIGNvbnZlcnQgbnVtZXJpYyB2YXJpYWJsZXMgZnJvbSBjaGFyYWN0ZXIgY2xhc3MgdG8gbnVtZXJpYyBjbGFzcwpudW1fdmFycyA8LSBjKCJBR0UiLCAiQ1JPV0ZMWSIsICJUVU1PUl9TSVpFIiwgIkRYX1NUQUdJTkdfUFJPQ19EQVlTIiwgIkRYX1JYX1NUQVJURURfREFZUyIsICJEWF9TVVJHX1NUQVJURURfREFZUyIsCiAgICAgICAgICAgICAgIkRYX0RFRlNVUkdfU1RBUlRFRF9EQVlTIiwgIlNVUkdfRElTQ0hBUkdFX0RBWVMiLCAiRFhfUkFEX1NUQVJURURfREFZUyIsICAiUkFEX1JFR0lPTkFMX0RPU0VfQ0dZIiwKICAgICAgICAgICAgICAiUkFEX0JPT1NUX0RPU0VfQ0dZIiwgIlJBRF9FTEFQU0VEX1JYX0RBWVMiLCAiRFhfU1lTVEVNSUNfU1RBUlRFRF9EQVlTIiwgIkRYX0NIRU1PX1NUQVJURURfREFZUyIsIAogICAgICAgICAgICAgICJEWF9IT1JNT05FX1NUQVJURURfREFZUyIsICJEWF9PVEhFUl9TVEFSVEVEX0RBWVMiLCAiRFhfTEFTVENPTlRBQ1RfREVBVEhfTU9OVEhTIiwKICAgICAgICAgICAgICAiUkFEX05VTV9UUkVBVF9WT0wiKQoKZGF0W251bV92YXJzXSA8LSBsYXBwbHkoZGF0W251bV92YXJzXSwgYXMubnVtZXJpYykKCgojIGNvbnZlcnQgZmFjdG9yIHZhcmlhYmxlcyBmcm9tIGNoYXJhY3RlciBjbGFzcyB0byBmYWN0b3IgY2xhc3MKdmFycyA8LSBuYW1lcyhkYXQpCmZhY3RfdmFycyA8LSB2YXJzWyEodmFycyAlaW4lIG51bV92YXJzKV0gIyBiYXNpY2FsbHkgYWxsIG9mIHRoZSBub24tbnVtZXJpY3MKCmRhdFtmYWN0X3ZhcnNdIDwtIGxhcHBseShkYXRbZmFjdF92YXJzXSwgYXMuY2hhcmFjdGVyKQpkYXRbZmFjdF92YXJzXSA8LSBsYXBwbHkoZGF0W2ZhY3RfdmFyc10sIGFzLmZhY3RvcikKCmRhdCA8LSBkYXQgJT4lCiAgICAgICAgbXV0YXRlKEZBQ0lMSVRZX1RZUEVfRiA9IGZjdF9yZWNvZGUoRkFDSUxJVFlfVFlQRV9DRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29tbXVuaXR5IENhbmNlciBQcm9ncmFtIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29tcHJlaGVuc2l2ZSBDb21tIENhIFByb2dyYW0iID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBY2FkZW1pYy9SZXNlYXJjaCBQcm9ncmFtIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW50ZWdyYXRlZCBOZXR3b3JrIENhIFByb2dyYW0iID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoRkFDSUxJVFlfTE9DQVRJT05fRiA9IGZjdF9yZWNvZGUoRkFDSUxJVFlfTE9DQVRJT05fQ0QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5ldyBFbmdsYW5kIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWlkZGxlIEF0bGFudGljIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU291dGggQXRsYW50aWMiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFYXN0IE5vcnRoIENlbnRyYWwiID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFYXN0IFNvdXRoIENlbnRyYWwiID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXZXN0IE5vcnRoIENlbnRyYWwiID0gIjYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXZXN0IFNvdXRoIENlbnRyYWwiID0gIjciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNb3VudGFpbiIgPSAiOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBhY2lmaWMiID0gIjkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvdXQgb2YgVVMiID0gIjAiKSkgJT4lCiAgICAgICAgbXV0YXRlKEZBQ0lMSVRZX0dFT0dSQVBIWSA9IGZjdF9jb2xsYXBzZShGQUNJTElUWV9MT0NBVElPTl9DRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb3J0aGVhc3QiID0gYygiMSIsICIyIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU291dGgiID0gYygiMyIsICI3IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWlkd2VzdCIgPSBjKCI0IiwgIjUiLCAiNiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldlc3QiID0gYygiOCIsICI5IikpKSAlPiUKICAgICAgICBtdXRhdGUoQUdFX0YgPSBjdXQoQUdFLCBjKDAsIDU0LCA2NCwgNzQsIDEwMCkpKSAlPiUKICAgICAgICBtdXRhdGUoQUdFXzQwID0gY3V0KEFHRSwgYygwLCA0MCwgMTAwKSkpICU+JQogICAgICAgIG11dGF0ZShTRVhfRiA9IGZjdF9yZWNvZGUoU0VYLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNYWxlIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmVtYWxlIiA9ICIyIikpICU+JQogICAgICAgIG11dGF0ZShSQUNFX0YgPSBmY3RfY29sbGFwc2UoUkFDRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiV2hpdGUiID0gYygiMDEiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQmxhY2siID0gYygiMDIiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXNpYW4iID0gYygiMDQiLCAiMDUiLCAiMDYiLCAiMDciLCAiMDgiLCAiMTAiLCAiMTEiLCAiMTIiLCAiMTMiLCAiMTQiLCAiMTUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxNiIsICIxNyIsICIyMCIsICIyMSIsICIyMiIsICIyNSIsICIyNiIsICIyNyIsICIyOCIsICIzMCIsICIzMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjMyIiwgIjk2IiwgIjk3IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk90aGVyL1VuayIgPSBjKCIwMyIsICI5OCIsICI5OSIpKSkgJT4lCiAgICAgICAgbXV0YXRlKEhJU1BBTklDID0gZmN0X2NvbGxhcHNlKFNQQU5JU0hfSElTUEFOSUNfT1JJR0lOLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWWVzIiA9IGMoIjEiLCAiMiIsICIzIiwgIjQiLCAiNSIsICI2IiwgIjciLCAiOCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8iID0gYygiMCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSBjKCI5IikpKSAlPiUKICAgICAgICBtdXRhdGUoSU5TVVJBTkNFX0YgPSBmY3RfcmVjb2RlKElOU1VSQU5DRV9TVEFUVVMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vbmUiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQcml2YXRlIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWVkaWNhaWQiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNZWRpY2FyZSIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk90aGVyIEdvdmVybm1lbnQiID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9ICI5IikpICU+JQogICAgICAgIG11dGF0ZShJTlNVUkFOQ0VfRiA9IGZjdF9yZWxldmVsKElOU1VSQU5DRV9GLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQcml2YXRlIikpICU+JQogICAgICAgIG11dGF0ZShJTkNPTUVfRiA9IGZjdF9yZWNvZGUoTUVEX0lOQ19RVUFSXzEyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMZXNzIHRoYW4gJDM4LDAwMCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiQzOCwwMDAgLSAkNDcsOTk5IiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJDQ4LDAwMCAtICQ2Miw5OTkiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIkNjMsMDAwICsiID0gIjQiKSkgJT4lCiAgICAgICAgbXV0YXRlKEVEVUNBVElPTl9GID0gZmN0X3JlY29kZShOT19IU0RfUVVBUl8xMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIyMSUgb3IgbW9yZSIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMTMgLSAyMC45JSIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNyAtIDEyLjklIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMZXNzIHRoYW4gNyUiID0gIjQiKSkgJT4lCiAgICAgICAgbXV0YXRlKFVfUl9GID0gZmN0X2NvbGxhcHNlKFVSX0NEXzEzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWV0cm8iID0gYygiMSIsICIyIiwgIjMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVyYmFuIiA9IGMoIjQiLCAiNSIsICI2IiwgIjciKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJ1cmFsIiA9IGMoIjgiLCAiOSIpKSkgJT4lCiAgICAgICAgbXV0YXRlKENMQVNTX09GX0NBU0VfRiA9IGZjdF9jb2xsYXBzZShDTEFTU19PRl9DQVNFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWxsX1BhcnRfUHJpbSA9IGMoIjEwIiwgIjExIiwgIjEyIiwgIjEzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxNCIsICIyMCIsICIyMSIsICIyMiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3RoZXJfRmFjaWxpdHkgPSBjKCIwMCIpKSkgJT4lCiAgICAgICAgbXV0YXRlKEdSQURFX0YgPSBmY3RfcmVjb2RlKEdSQURFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdyIEk6IFdlbGwgRGlmZiIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR3IgSUk6IE1vZCBEaWZmIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHciBJSUk6IFBvb3IgRGlmZiIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR3IgSVY6IFVuZGlmZi9BbmFwbGFzdGljIiA9ICI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOQS9Vbmtvd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKEhJU1RPTE9HWV9GID0gZmN0X2luZnJlcShISVNUT0xPR1kpKSAlPiUKICAgICAgICBtdXRhdGUoSElTVE9MT0dZX0YgPSBmYWN0b3IoSElTVE9MT0dZX0YpKSAlPiUKICAgICAgICBtdXRhdGUoSElTVE9MT0dZX0ZfTElNID0gZmN0X2x1bXAoSElTVE9MT0dZX0YsIHByb3AgPSAwLjA1KSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9DTElOX1QgPSBmY3RfcmVjb2RlKFROTV9DTElOX1QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOX0EiID0gIjg4IikpICU+JQogICAgICAgIG11dGF0ZShUTk1fQ0xJTl9UID0gZmN0X3JlbGV2ZWwoVE5NX0NMSU5fVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxIikpICU+JQogICAgICAgIG11dGF0ZShUTk1fQ0xJTl9OID0gZmN0X3JlY29kZShUTk1fQ0xJTl9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX0NMSU5fTSA9IGZjdF9yZWNvZGUoVE5NX0NMSU5fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9QQVRIX1QgPSBmY3RfcmVjb2RlKFROTV9QQVRIX1QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOX0EiID0gIjg4IikpICU+JQogICAgICAgIG11dGF0ZShUTk1fUEFUSF9UID0gZmN0X3JlbGV2ZWwoVE5NX1BBVEhfVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxIikpICU+JQogICAgICAgIG11dGF0ZShUTk1fUEFUSF9OID0gZmN0X3JlY29kZShUTk1fUEFUSF9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX1BBVEhfTSA9IGZjdF9yZWNvZGUoVE5NX1BBVEhfTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9DTElOX1NUQUdFX0dST1VQID0gZmN0X3JlY29kZShUTk1fQ0xJTl9TVEFHRV9HUk9VUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9QQVRIX1NUQUdFX0dST1VQID0gZmN0X3JlY29kZShUTk1fUEFUSF9TVEFHRV9HUk9VUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKE1BUkdJTlMgPSBmY3RfcmVjb2RlKFJYX1NVTU1fU1VSR0lDQUxfTUFSR0lOUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFJlc2lkdWFsIiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJlc2lkdWFsLCBOT1MiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWljcm9zY29waWMgUmVzaWQiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWFjcm9zY29waWMgUmVzaWQiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm90IGV2YWx1YWJsZSIgPSAiNyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBzdXJnIiA9ICI4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKE1BUkdJTlNfWU4gPSBmY3RfY29sbGFwc2UoUlhfU1VNTV9TVVJHSUNBTF9NQVJHSU5TLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZXMiID0gYygiMSIsICIyIiwgIjMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8iID0gYygiMCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBzdXJnL1Vuay9OQSIgPSBjKCI3IiwgIjgiLCAiOSIpKSkgJT4lCiAgICAgICAgbXV0YXRlKFJFQURNX0hPU1BfMzBfREFZU19GID0gZmN0X3JlY29kZShSRUFETV9IT1NQXzMwX0RBWVMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9fU3VyZ19vcl9Ob19SZWFkbWl0IiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbnBsYW5fUmVhZG1pdF9TYW1lIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQbGFuX1JlYWRtaXRfU2FtZSIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGxhblVucGxhbl9TYW1lIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9ICI0IikpICU+JQogICAgICAgIG11dGF0ZShSWF9TVU1NX1JBRElBVElPTl9GID0gZmN0X3JlY29kZShSWF9TVU1NX1JBRElBVElPTiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vbmUiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQmVhbSBSYWRpYXRpb24iID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkaW9hY3RpdmUgSW1wbGFudHMiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkaW9pc290b3BlcyIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJCZWFtICsgSW1wIG9yIElzb3RvcGVzIiA9ICI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZGlhdGlvbiwgTk9TIiA9ICI1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFBVRl8zMF9EQVlfTU9SVF9DRF9GID0gZmN0X3JlY29kZShQVUZfMzBfREFZX01PUlRfQ0QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWxpdmVfMzAiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlYWRfMzAiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFBVRl85MF9EQVlfTU9SVF9DRF9GID0gZmN0X3JlY29kZShQVUZfOTBfREFZX01PUlRfQ0QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWxpdmVfOTAiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlYWRfOTAiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKExZTVBIX1ZBU0NVTEFSX0lOVkFTSU9OX0YgPSBmY3RfcmVjb2RlKExZTVBIX1ZBU0NVTEFSX0lOVkFTSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTmVnX0x5bXBoVmFzY19JbnYiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUG9zX0x1bXBoVmFzY19JbnYiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFJYX0hPU1BfU1VSR19BUFBSXzIwMTBfRiA9IGZjdF9yZWNvZGUoUlhfSE9TUF9TVVJHX0FQUFJfMjAxMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9fU3VyZyIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJvYm90X0Fzc2lzdCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJvYm90X3RvX09wZW4iID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFbmRvX0xhcCIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVuZG9fTGFwX3RvX09wZW4iID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPcGVuX1Vua25vd24iID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9ICI5IikpICU+JQogICAgICAgIG11dGF0ZShBbGwgPSAiQWxsIikgJT4lCiAgICAgICAgbXV0YXRlKEFsbCA9IGZhY3RvcihBbGwpKSAlPiUKICAgICAgICBtdXRhdGUoUkVBU09OX0ZPUl9OT19TVVJHRVJZX0YgPSBmY3RfcmVjb2RlKFJFQVNPTl9GT1JfTk9fU1VSR0VSWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIHBlcmZvcm1lZCIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyBub3QgcmVjb21tZW5kZWQiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIHN1cmcgZHVlIHRvIHB0IGZhY3RvcnMiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIHN1cmcsIHB0IGRpZWQiID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgcmVjLCBub3QgZG9uZSIgPSAiNiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyByZWMsIHB0IHJlZnVzZWQiID0gIjciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgcmVjLCB1bmsgaWYgZG9uZSIgPSAiOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR0VSWV9ZTiA9IGlmZWxzZShSRUFTT05fRk9SX05PX1NVUkdFUlkgPT0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSRUFTT05fRk9SX05PX1NVUkdFUlkgPT0gIjkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVWtuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIikpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19URiA9IGNhc2Vfd2hlbihTVVJHRVJZX1lOID09ICJZZXMiIH4gVFJVRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVVJHRVJZX1lOID09ICJObyIgfiBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFIH4gTkEpKSAgJT4lCiAgICAgICAgbXV0YXRlKFJFQVNPTl9GT1JfTk9fUkFESUFUSU9OX0YgPSBmY3RfcmVjb2RlKFJFQVNPTl9GT1JfTk9fUkFESUFUSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBwZXJmb3JtZWQiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBub3QgcmVjb21tZW5kZWQiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFJhZCBkdWUgdG8gcHQgZmFjdG9ycyIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gUmFkLCBwdCBkaWVkIiA9ICI1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgcmVjLCBub3QgZG9uZSIgPSAiNiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIHJlYywgcHQgcmVmdXNlZCIgPSAiNyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIHJlYywgdW5rIGlmIGRvbmUiID0gIjgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFJBRElBVElPTl9ZTiA9IGlmZWxzZShSRUFTT05fRk9SX05PX1JBRElBVElPTiA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJFQVNPTl9GT1JfTk9fUkFESUFUSU9OID09ICI5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyIpKSkgJT4lCiAgICAgICAgbXV0YXRlKFNVUkdSQURfU0VRX0YgPSBmY3RfcmVjb2RlKFJYX1NVTU1fU1VSR1JBRF9TRVEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb25lIG9yIFN1cmcgb3IgUmFkIiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBiZWZvcmUgU3VyZyIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIGJlZm9yZSBSYWQiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIGJlZm9yZSBhbmQgYWZ0ZXIgU3VyZyIgPSAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnRyYW9wIFJhZCIgPSAiNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnRyYW9wIFJhZCBwbHVzIG90aGVyIiA9ICI2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFNVUkdfUkFEX1NFUSA9IGlmZWxzZShTVVJHRVJZX1lOID09ICJZZXMiICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyBBbG9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUkFESUFUSU9OX1lOID09ICJZZXMiICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBBbG9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFNVUkdFUllfWU4gPT0gIk5vIiAmIFJBRElBVElPTl9ZTiA9PSAiTm8iICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBUcmVhdG1lbnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIHRoZW4gU3VyZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgdGhlbiBSYWQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBiZWZvcmUgYW5kIGFmdGVyIFN1cmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIiKSkpKSkpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19SQURfU0VRID0gZmN0X3JlbGV2ZWwoU1VSR19SQURfU0VRLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyBBbG9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIHRoZW4gUmFkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBBbG9uZSIpKSAlPiUKICAgICAgICBtdXRhdGUoQ0hFTU9fWU4gPSBmY3RfY29sbGFwc2UoUlhfU1VNTV9DSEVNTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIiA9IGMoIjAwIiwgIjgyIiwgIjg1IiwgIjg2IiwgIjg3IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZXMiID0gYygiMDEiLCAiMDIiLCAiMDMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVrbiIgPSBjKCI4OCIsICI5OSIpKSkgJT4lCiAgICAgICAgbXV0YXRlKFNVUkdfUkFEX1NFUV9DID0gaWZlbHNlKFNVUkdFUllfWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiAmIENIRU1PX1lOID09ICJObyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZywgTm8gcmFkLCBObyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUkFESUFUSU9OX1lOID09ICJZZXMiICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIgJiBDSEVNT19ZTiA9PSAiTm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQsIE5vIFN1cmcsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoU1VSR0VSWV9ZTiA9PSAiTm8iICYgUkFESUFUSU9OX1lOID09ICJObyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiAmIENIRU1PX1lOID09ICJObyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBTdXJnLCBObyBSYWQsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjIiICYgQ0hFTU9fWU4gPT0gIk5vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgdGhlbiBTdXJnLCBObyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMyIgJiBDSEVNT19ZTiA9PSAiTm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIHRoZW4gUmFkLCBObyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjQiICYgQ0hFTU9fWU4gPT0gIk5vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBiZWZvcmUgYW5kIGFmdGVyIFN1cmcsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoU1VSR0VSWV9ZTiA9PSAiWWVzIiAmIFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjAiICYgQ0hFTU9fWU4gPT0gIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnLCBObyByYWQsIFllcyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSQURJQVRJT05fWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiAmIENIRU1PX1lOID09ICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCwgTm8gU3VyZywgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShTVVJHRVJZX1lOID09ICJObyIgJiBSQURJQVRJT05fWU4gPT0gIk5vIiAmIFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjAiICYgQ0hFTU9fWU4gPT0gIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFN1cmcsIE5vIFJhZCwgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMiIgJiBDSEVNT19ZTiA9PSAiWWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCB0aGVuIFN1cmcsIFllcyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICIzIiAmIENIRU1PX1lOID09ICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgdGhlbiBSYWQsIFllcyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiNCIgJiBDSEVNT19ZTiA9PSAiWWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIGJlZm9yZSBhbmQgYWZ0ZXIgU3VyZywgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIiKSkpKSkpKSkpKSkpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19SQURfU0VRX0MgPSBmY3RfaW5mcmVxKFNVUkdfUkFEX1NFUV9DKSkgJT4lCiAgICAgICAgbXV0YXRlKFRfU0laRSA9IGFzLm51bWVyaWMoVFVNT1JfU0laRSkpICU+JQogICAgICAgIG11dGF0ZShUX1NJWkUgPSBpZmVsc2UoVF9TSVpFID09IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFR1bW9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoVF9TSVpFID4gMCAmIFRfU0laRSA8IDEwIHwgVF9TSVpFID09IDk5MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjwgMSBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gMTAgJiBUX1NJWkUgPCAyMCB8IFRfU0laRSA9PSA5OTIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMS0yIGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gMjAgJiBUX1NJWkUgPCAzMCB8IFRfU0laRSA9PSA5OTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjItMyBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSAzMCAmIFRfU0laRSA8IDQwIHwgVF9TSVpFID09IDk5NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjMtNCBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gNDAgJiBUX1NJWkUgPCA1MCB8IFRfU0laRSA9PSA5OTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNC01IGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gNTAgJiBUX1NJWkUgPCA2MCB8IFRfU0laRSA9PSA5OTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjUtNiBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSA2MCAmIFRfU0laRSA8PSA5ODcgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfU0laRSA9PSA5ODAgfCBUX1NJWkUgPT0gOTg5IHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUX1NJWkUgPT0gOTk3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI+NiBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA9PSA5ODggfCBUX1NJWkUgPT0gOTk5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTkFfdW5rIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1pY3Jvc2NvcGljIGZvY3VzIikpKSkpKSkpKSkgJT4lCiAgICAgICAgbXV0YXRlKFRfU0laRSA9IGZhY3RvcihUX1NJWkUpKSAlPiUKICAgICAgICBtdXRhdGUoVF9TSVpFID0gZmN0X3JlbGV2ZWwoVF9TSVpFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFR1bW9yIiwgIk1pY3Jvc2NvcGljIGZvY3VzIiwgIjwgMSBjbSIsICIxLTIgY20iLCAiMi0zIGNtIiwgIjMtNCBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI0LTUgY20iLCAiNS02IGNtIiwgIj42IGNtIiwgIk5BX3VuayIpKSAlPiUKICAgICAgICBtdXRhdGUobWV0c19hdF9keCA9IGNhc2Vfd2hlbihDU19NRVRTX0RYX0xVTkcgPT0gIjEiIH4gIkx1bmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTX01FVFNfRFhfQk9ORSA9PSAiMSIgfiAiQm9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NfTUVUU19EWF9CUkFJTiA9PSAiMSIgfiAiQnJhaW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTX01FVFNfRFhfTElWRVIgPT0gIjEiIH4gIkxpdmVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFIH4gIk5vbmUvT3RoZXIvVW5rL05BIikpICU+JQogICAgICAgIG11dGF0ZShNRURJQ0FJRF9FWFBOX0NPREUgPSBmY3RfcmVjb2RlKE1FRElDQUlEX0VYUE5fQ09ERSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9uLUV4cGFuc2lvbiBTdGF0ZSIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkphbiAyMDE0IEV4cGFuc2lvbiBTdGF0ZXMiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFYXJseSBFeHBhbnNpb24gU3RhdGVzICgyMDEwLTEzKSIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxhdGUgRXhwYW5zaW9uIFN0YXRlcyAoPiBKYW4gMjAxNCkiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXBwcmVzc2VkIGZvciBBZ2VzIDAgLSAzOSIgPSAiOSIpKSAgJT4lCiAgICAgICAgbXV0YXRlKEVYUE5fR1JPVVAgPSAgY2FzZV93aGVuKE1FRElDQUlEX0VYUE5fQ09ERSAgJWluJSBjKCJKYW4gMjAxNCBFeHBhbnNpb24gU3RhdGVzIikgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIGMoIjIwMTQiLCAiMjAxNSIpIH4gIlBvc3QtRXhwYW5zaW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSAgJWluJSBjKCJKYW4gMjAxNCBFeHBhbnNpb24gU3RhdGVzIikgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjKCIyMDA0IiwgIjIwMDUiLCAiMjAwNiIsICIyMDA3IiwgIjIwMDgiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMjAwOSIsICIyMDEwIiwgIjIwMTEiLCAiMjAxMiIsICIyMDEzIikgfiAiUHJlLUV4cGFuc2lvbiIsCiAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRURJQ0FJRF9FWFBOX0NPREUgICVpbiUgYygiRWFybHkgRXhwYW5zaW9uIFN0YXRlcyAoMjAxMC0xMykiKSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlFQVJfT0ZfRElBR05PU0lTICVpbiUgYygiMjAxMCIsICIyMDExIiwgIjIwMTIiLCAiMjAxMyIsICIyMDE0IiwgIjIwMTUiKSB+ICJQb3N0LUV4cGFuc2lvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUVESUNBSURfRVhQTl9DT0RFICAlaW4lIGMoIkVhcmx5IEV4cGFuc2lvbiBTdGF0ZXMgKDIwMTAtMTMpIikgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIGMoIjIwMDQiLCAiMjAwNSIsICIyMDA2IiwgIjIwMDciLCAiMjAwOCIsICIyMDA5IikgfiAiUHJlLUV4cGFuc2lvbiIsCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRURJQ0FJRF9FWFBOX0NPREUgJWluJSBjKCJOb24tRXhwYW5zaW9uIFN0YXRlIikgfiAiUHJlLUV4cGFuc2lvbiIsCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRURJQ0FJRF9FWFBOX0NPREUgJWluJSBjKCJMYXRlIEV4cGFuc2lvbiBTdGF0ZXMgKD4gSmFuIDIwMTQpIikgfiAiUHJlLUV4cGFuc2lvbiIsCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSAlaW4lIGMoIkxhdGUgRXhwYW5zaW9uIFN0YXRlcyAoPiBKYW4gMjAxNCkiKSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWUVBUl9PRl9ESUFHTk9TSVMgJWluJSBjKCIyMDE0IiwgIjIwMTUiKSB+ICJFeGNsdWRlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSA9PSAiU3VwcHJlc3NlZCBmb3IgQWdlcyAwIC0gMzkiIH4gIkV4Y2x1ZGUiKSkgJT4lCiAgCiAgbXV0YXRlKHByZV8yMDE0ID0gWUVBUl9PRl9ESUFHTk9TSVMgJWluJSBjKCIyMDA0IiwgIjIwMDUiLCAiMjAwNiIsICIyMDA3IiwgIjIwMDgiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMjAwOSIsICIyMDEwIiwgIjIwMTEiLCAiMjAxMiIsICIyMDEzIikpICU+JQogIAogIG11dGF0ZShtZXRzX2F0X2R4X0YgPSBpZmVsc2UobWV0c19hdF9keCA9PSAiTm9uZS9PdGhlci9VbmsvTkEiLCBGQUxTRSwgVFJVRSkpICU+JSAKICAKICBtdXRhdGUoVHhfWU4gPSBpZmVsc2UoU1VSR19SQURfU0VRID09ICJObyBUcmVhdG1lbnQiICYgQ0hFTU9fWU4gPT0gIk5vIiwgRkFMU0UsIAogICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoQ0hFTU9fWU4gPT0gIlVrbiIsIE5BLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUpKSkKCmZhY3RfdmFyc18yIDwtIGMoIkZBQ0lMSVRZX1RZUEVfRiIsICJGQUNJTElUWV9MT0NBVElPTl9GIiwgIkFHRV9GIiwgIlNFWF9GIiwgIlJBQ0VfRiIsCiAgICAgICAgICAgICAgICAgIkhJU1BBTklDIiwgIklOU1VSQU5DRV9GIiwgIklOQ09NRV9GIiwgIkVEVUNBVElPTl9GIiwgIlVfUl9GIiwKICAgICAgICAgICAgICAgICAiQ0RDQ19UT1RBTF9CRVNUIiwgIkNMQVNTX09GX0NBU0VfRiIsICJZRUFSX09GX0RJQUdOT1NJUyIsICJQUklNQVJZX1NJVEUiLCAiSElTVE9MT0dZIiwKICAgICAgICAgICAgICAgICAiQkVIQVZJT1IiLCAiR1JBREVfRiIsICJUTk1fQ0xJTl9UIiwgIlROTV9DTElOX04iLCAiVE5NX0NMSU5fTSIsCiAgICAgICAgICAgICAgICAgIlROTV9DTElOX1NUQUdFX0dST1VQIiwgIlROTV9QQVRIX1QiLCAiVE5NX1BBVEhfTiIsICJUTk1fUEFUSF9NIiwgIlROTV9QQVRIX1NUQUdFX0dST1VQIiwKICAgICAgICAgICAgICAgICAiTUFSR0lOUyIsICJSRUFETV9IT1NQXzMwX0RBWVNfRiIsICJSWF9TVU1NX1JBRElBVElPTl9GIiwgIlBVRl8zMF9EQVlfTU9SVF9DRF9GIiwKICAgICAgICAgICAgICAgICAiUFVGXzkwX0RBWV9NT1JUX0NEX0YiLCAiTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT05fRiIsICJSWF9IT1NQX1NVUkdfQVBQUl8yMDEwX0YiLCAibWV0c19hdF9keCIpCgoKZGF0IDwtIGRhdCAlPiUKICAgICAgICBtdXRhdGVfYXQoZmFjdF92YXJzXzIsIGZ1bnMoZmFjdG9yKC4pKSkKCmBgYAoKIyBmdW5jdGlvbnMKYGBge3J9CnBfdGFibGUgPC0gZnVuY3Rpb24odGFiX2RhdGEsIC4uLikgewogIHRhYl9kYXRhXzIgPC0gZGVwYXJzZShzdWJzdGl0dXRlKHRhYl9kYXRhKSkKICAKICB0YWJsZV9wIDwtIGRvLmNhbGwoQ3JlYXRlVGFibGVPbmUsIAogICAgICAgICAgICAgICAgICAgICBsaXN0KGRhdGEgPSBhcy5uYW1lKHRhYl9kYXRhXzIpLCBpbmNsdWRlTkEgPSBUUlVFLCAuLi4pKQogIHRhYmxlX3Bfb3V0IDwtIHByaW50KHRhYmxlX3AsCiAgICAgICAgICAgICAgICAgICAgICAgc2hvd0FsbExldmVscyA9IFRSVUUsCiAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRUb2dnbGUgPSBGQUxTRSkKICBrYWJsZSh0YWJsZV9wX291dCwKICAgICAgICBhbGlnbiA9ICJjIikKfQpgYGAKCgoKCmBgYHtyfQp1bmlfdmFyIDwtIGZ1bmN0aW9uKHRlc3RfdmFyLCBkYXRhX2ltcCkgewoKICAgICAgICAgICAgICAgIAogICAgICAgIGNhdCgiX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyIpCiAgICAgICAgY2F0KCJcbiIpCiAgICAgICAgY2F0KCIgICBcbiMjIiwgdGVzdF92YXIpCiAgICAgICAgY2F0KCJcbiIpCiAgICAgICAgY2F0KCJfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIikKICAgICAgICBjYXQoIlxuIikKCiAgICAgICAgCiAgICAgICAgZiA8LSBhcy5mb3JtdWxhKHBhc3RlKCJTdXJ2KERYX0xBU1RDT05UQUNUX0RFQVRIX01PTlRIUywgUFVGX1ZJVEFMX1NUQVRVUyA9PSAwKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLm5hbWUodGVzdF92YXIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXAgPSAiIH4gIiApKQogICAgICAgIAogICAgICAgIGRhdGFfaW1wXzIgPC0gZGVwYXJzZShzdWJzdGl0dXRlKGRhdGFfaW1wKSkKCiAgICAgICAga21fZml0IDwtIGRvLmNhbGwoInN1cnZmaXQiLCBsaXN0KGZvcm11bGEgPSBmLCBkYXRhID0gYXMubmFtZShkYXRhX2ltcF8yKSkpCgogICAgICAgIHByaW50KGttX2ZpdCkKICAgICAgICBjYXQoIlxuIikKCiAgICAgICAgcHJpbnQoc3VtbWFyeShrbV9maXQsIHRpbWVzID0gYygxMiwgMjQsIDM2LCA0OCwgNjAsIDEyMCkpKQogICAgICAgIGNhdCgiXG4iKQoKCiAgICAgICAgY2F0KCJcbiIpCiAgICAgICAgY2F0KCJcbiIpCiAgICAgICAgY2F0KCIgICBcbiMjIFVuaXZhcmlhYmxlIENveCBQcm9wb3J0aW9uYWwgSGF6YXJkIE1vZGVsIGZvcjogIiwgdGVzdF92YXIpCiAgICAgICAgY2F0KCJcbiIpCiAgICAgICAgY2F0KCJcbiIpCgoKICAgICAgICBuX2xldmVscyA8LSBubGV2ZWxzKGRhdGFfaW1wW1t0ZXN0X3Zhcl1dKQoKICAgICAgICBpZihuX2xldmVscyA9PSAxKXsKICAgICAgICAgICAgICAgIHByaW50KCJPbmx5IG9uZSBsZXZlbCwgbm8gQ294IG1vZGVsIHBlcmZvcm1lZCIpCiAgICAgICAgICAgICAgICBjYXQoIlxuIikKCiAgICAgICAgfSBlbHNlIHsKCgogICAgICAgICAgICAgICAgY294X2ZpdCA8LSBkby5jYWxsKCJjb3hwaCIsIGxpc3QoZm9ybXVsYSA9IGYsIGRhdGEgPSBhcy5uYW1lKGRhdGFfaW1wXzIpKSkKCiAgICAgICAgICAgICAgICBwcmludChzdW1tYXJ5KGNveF9maXQpKQogICAgICAgICAgICAgICAgY2F0KCJcbiIpCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGRvLmNhbGwoImdnZm9yZXN0IiwKICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QobW9kZWwgPSBjb3hfZml0LCBkYXRhID0gYXMubmFtZShkYXRhX2ltcF8yKSkpCgoKICAgICAgICB9CgogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiICAgXG4jIyBVbmFkanVzdGVkIEthcGxhbiBNZWllciBPdmVyYWxsIFN1cnZpdmFsIEN1cnZlIGZvcjogIiwgdGVzdF92YXIpCgoKICAgICAgICBwIDwtIGRvLmNhbGwoImdnc3VydnBsb3QiLAogICAgICAgICAgICAgICAgICAgICBsaXN0KGZpdCA9IGttX2ZpdCwgZGF0YSA9IGFzLm5hbWUoZGF0YV9pbXBfMiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9ICJqY28iLCBjZW5zb3IgPSBGQUxTRSwgbGVnZW5kID0gInJpZ2h0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5ldHlwZSA9ICJzdHJhdGEiLCB4bGFiID0gIlRpbWUgKE1vbnRocykiKSkKCiAgICAgICAgcHJpbnQocCkKCn0KCmBgYAoKCiMgRXh0cmFjdCBEYXRhIG9mIEludGVyZXN0CgpgYGB7cn0KIyBNZWxhbm9tYQpzaXRlX2NvZGUgPC0gYygiQzQ0MCIsICJDNDQxIiwgIkM0NDIiLCAiQzQ0MyIsICJDNDQ0IiwgIkM0NDUiLCAiQzQ0NiIsICJDNDQ3IiwgIkM0NDgiLCAiQzQ0OSIsICJDNTEwIiwgIkM1MTEiLCAiQzUxMiIsICJDNTE4IiwgIkM1MTkiLCAiQzYwMCIsICJDNjAxIiwgIkM2MDIiLCAiQzYwOCIsICJDNjA5IiwgIkM2MzIiKQpoaXN0b19jb2RlIDwtIGMoIjg3MjAiLCAiODc0MSIsICI4NzQ2IiwgIjg3MjEiLCAiODcyMiIsICI4NzIzIiwgIjg3MzAiLCAiODc0MCIsICI4NzQyIiwgIjg3NDMiLCAiODc0NCIsICI4NzQ1IiwgIjg3NjEiKQoKYmVoYXZpb3JfY29kZSA8LSBjKCIzIikKCmRhdGEgPC0gZGF0ICU+JQogICAgICAgIGZpbHRlcihCRUhBVklPUiAlaW4lIGJlaGF2aW9yX2NvZGUpICU+JQogICAgICAgIGZpbHRlcihQUklNQVJZX1NJVEUgJWluJSBzaXRlX2NvZGUpICU+JQogICAgICAgIGZpbHRlcihISVNUT0xPR1kgJWluJSBoaXN0b19jb2RlKSAlPiUKICAgICAgICBmaWx0ZXIoaXMubmEoUFVGX1ZJVEFMX1NUQVRVUykgPT0gRkFMU0UpICU+JQogICAgICAgIGZpbHRlcihpcy5uYShEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMpID09IEZBTFNFKSAlPiUKICAgICAgICBmaWx0ZXIoSU5TVVJBTkNFX1NUQVRVUyAlaW4lIGMoIjAiLCAiMSIsICIyIiwgIjMiLCAiNCIpKQogICAjIGZpbHRlcihBR0UgPj0gMTgpICU+JQogICAjICAgICAgZmlsdGVyKFROTV9DTElOX00gJWluJSBjKCJjMCIpKSAlPiUKICAgIyAgICAgIGZpbHRlcihTRVFVRU5DRV9OVU1CRVIgPT0gIjAwIikgJT4lCiAgICMgICAgICBmaWx0ZXIoQ0xBU1NfT0ZfQ0FTRSAlaW4lIGMoIjEwIiwgIjEyIiwgIjE0IiwgIjIyIikpICU+JQogICAgICAgIAoKbm9fRXhjbHVkZXMgPC0gYXMuZGF0YS5mcmFtZShkYXRhICU+JSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcihFWFBOX0dST1VQICE9ICJFeGNsdWRlIikgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJT4lIGRyb3BsZXZlbHMoKSkKCgpmaWxlX3BhdGggPC0gYygiL1VzZXJzL2JlYXN0YXRsaWZlL0dvb2dsZSBEcml2ZS9QZW5uL1Jlc2VhcmNoL0JhcmJpZXJpL05DREIiKQpzYXZlKGRhdGEsCiAgICAgIGZpbGUgPSBwYXN0ZTAoZmlsZV9wYXRoLCAiL21lbGFub21hX2RhdGEuUmRhIikpCmBgYAoKYGBge3IgbG9hZERhdGF9CiNsb2FkKCJtZWxhbm9tYV9kYXRhLlJkYSIpCmBgYAoKCgoKRGF0YSBpbmNsdWRpbmcgc2tpbiB0dW1vcnMgd2FzIG9idGFpbmVkIGZyb20gdGhlIE5DQkQgb24gT2N0b2JlciA3LCAyMDE5LiBDYXNlcyB0aGF0IHdlcmUgaW5jbHVkZWQgaW4gdGhpcyBhbmFseXNpcyB3ZXJlIHRob3NlIHdpdGg6CgoxLiBTaXRlIGNvZGVzOiBgciBzaXRlX2NvZGVgCjIuIEhpc3RvbG9neSBjb2RlczogYHIgaGlzdG9fY29kZWAKMy4gQmVoYXZpb3IgY29kZXM6IGByIGJlaGF2aW9yX2NvZGVgCgoKUGF0aWVudHMgd2VyZSBleGNsdWRlZCBpZiB0aGV5IGRpZG4ndCBoYXZlIHZhbHVlcyBmb3IgZWl0aGVyIGZvbGxvdyB1cCBvciB2aXRhbCBzdGF0dXMuCgpQYXRpZW50cyB3ZXJlIGV4Y2x1ZGVkIGlmIHRoZXkgaGFkIHN1cmdlcnkgdG8gYSBkaXN0YW50IHNpdGUgdXNpbmcgYFJYX1NVTU1fU1VSR19PVEhfUkVHRElTYC4gVGhpcyB3YXMgZG9uZSB0byBhdm9pZCBjb25mb3VuZGluZyBvZiBkaWZmZXJlbnQgc3VyZ2ljYWwgcHJvY2VkdXJlcy4gV2UgYXJlIG9ubHkgaW50ZXJlc3RlZCBpbiBzdXJnZXJ5IGF0IHRoZSBwcmltYXJ5IHNpdGUuIFRoZXNlIGRpc3RhbnQgc2l0ZSBzdXJnZXJpZXMgd2VyZSBiZWluZyBjb3VudGVkIGluIHRoZSBzdXJnZXJ5L3JhZGlhdGlvbiBzZXF1ZW5jZSBhbmQgdGh1cyB0byBzaW1wbGlmeSBhbmFseXNpcyB0aGV5IHdlcmUgcmVtb3ZlZC4gCgpgYGB7cn0KCmRhdGEgJT4lCiAgICAgICAgQ3JlYXRlVGFibGVPbmUoZGF0YSA9IC4sCiAgICAgICAgICAgICAgICAgICAgIHZhcnMgPSBjKCJSWF9TVU1NX1NVUkdfT1RIX1JFR0RJUyIpLAogICAgICAgICAgICAgICAgICAgICBpbmNsdWRlTkEgPSBUUlVFKSAlPiUKICAgICAgICBwcmludCguLAogICAgICAgICAgICAgIHNob3dBbGxMZXZlbHMgPSBUUlVFKQoKZGF0YSA8LSBkYXRhICU+JQogICAgICAgIGZpbHRlcihSWF9TVU1NX1NVUkdfT1RIX1JFR0RJUyA9PSAiMCIpIApgYGAKCgpSYWNlIHdhcyBncm91cGVkIGFzIHdoaXRlLCBibGFjaywgYXNpYW4sIG90aGVyL3Vua25vd24KU3RhZ2Ugd2FzIGdyb3VwZWQgaW50byAwLCBJLCBJSSwgSUlJLCBJViwgTkFfVW5rbm93biwgc3RhZ2UgMCB3YXMgcmVtb3ZlZApXaGV0aGVyIHN1cmdlcnkgd2FzIHBlcmZvcm1lZCB3YXMgYmFzZWQgb24gdGhlIGBSRUFTT05fRk9SX05PX1NVUkdFUllgIHZhcmlhYmxlLiBUaGUgYFNVUkdFUllfWU5gIHZhcmlhYmxlIHdhcyBjbGFzc2lmaWVkIGFzICdZZXMnLCAnTm8nLCBvciAnVW5rbm93bicuCgoKV2hldGhlciByYWRpYXRpb24gd2FzIHBlcmZvcm1lZCB3YXMgYmFzZWQgb24gdGhlIGBSRUFTT05fRk9SX05PX1JBRElBVElPTmAgdmFyaWFibGUuIFRoZSBgUkFESUFUSU9OX1lOYCB2YXJpYWJsZSB3YXMgY2xhc3NpZmllZCBhcyAnWWVzJywgJ05vJywgb3IgJ1Vua25vd24nLgoKCgojI1RhYmxlIG9mIHZhcmlhYmxlcyBmb3IgYWxsIGNhc2VzOgoKYGBge3J9CgpwX3RhYmxlKGRhdGEsCiAgICAgICAgdmFycyA9IGMoIkZBQ0lMSVRZX1RZUEVfRiIsICJGQUNJTElUWV9MT0NBVElPTl9GIiwgIkZBQ0lMSVRZX0dFT0dSQVBIWSIsICAiQUdFIiwgIkFHRV9GIiwgIkFHRV80MCIsCiAgICAgICAgICAgICAgICAgIlNFWF9GIiwgIlJBQ0VfRiIsICJISVNQQU5JQyIsICJJTlNVUkFOQ0VfRiIsIAogICAgICAgICAgICAgICAgICJJTkNPTUVfRiIsICJFRFVDQVRJT05fRiIsICJVX1JfRiIsICJDUk9XRkxZIiwgIkNEQ0NfVE9UQUxfQkVTVCIsCiAgICAgICAgICAgICAgICAgIlBSSU1BUllfU0lURSIsICJISVNUT0xPR1lfRl9MSU0iLCAiSElTVE9MT0dZX0YiLCAiQkVIQVZJT1IiLCAiR1JBREVfRiIsCiAgICAgICAgICAgICAgICAgIkRYX1NUQUdJTkdfUFJPQ19EQVlTIiwgIlROTV9DTElOX1QiLCAiVE5NX0NMSU5fTiIsICJUTk1fQ0xJTl9NIiwKICAgICAgICAgICAgICAgICAiVE5NX0NMSU5fU1RBR0VfR1JPVVAiLCAiVE5NX1BBVEhfVCIsICJUTk1fUEFUSF9OIiwgIlROTV9QQVRIX00iLAogICAgICAgICAgICAgICAgICJUTk1fUEFUSF9TVEFHRV9HUk9VUCIsICJEWF9SWF9TVEFSVEVEX0RBWVMiLCAiRFhfU1VSR19TVEFSVEVEX0RBWVMiLAogICAgICAgICAgICAgICAgICJEWF9ERUZTVVJHX1NUQVJURURfREFZUyIsICJNQVJHSU5TIiwgIk1BUkdJTlNfWU4iLCAiU1VSR19ESVNDSEFSR0VfREFZUyIsCiAgICAgICAgICAgICAgICAgIlJFQURNX0hPU1BfMzBfREFZU19GIiwgIlJYX1NVTU1fUkFESUFUSU9OX0YiLCAiUFVGXzMwX0RBWV9NT1JUX0NEX0YiLAogICAgICAgICAgICAgICAgICJQVUZfOTBfREFZX01PUlRfQ0RfRiIsICJEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMiLCAKICAgICAgICAgICAgICAgICAiTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT05fRiIsICJSWF9IT1NQX1NVUkdfQVBQUl8yMDEwX0YiLCAiU1VSR19SQURfU0VRIiwKICAgICAgICAgICAgICAgICAiU1VSR19SQURfU0VRX0MiLCAiU1VSR0VSWV9ZTiIsICJSQURJQVRJT05fWU4iLCAiQ0hFTU9fWU4iLCAibWV0c19hdF9keCIsCiAgICAgICAgICAgICAgICAgIk1FRElDQUlEX0VYUE5fQ09ERSIsICJFWFBOX0dST1VQIiwgIlNJVEVfVEVYVCIpKQoKCgpwX3RhYmxlKG5vX0V4Y2x1ZGVzLAogICAgICAgIHZhcnMgPSBjKCJGQUNJTElUWV9UWVBFX0YiLCAiRkFDSUxJVFlfTE9DQVRJT05fRiIsICJGQUNJTElUWV9HRU9HUkFQSFkiLCAgIkFHRSIsICJBR0VfRiIsICJBR0VfNDAiLAogICAgICAgICAgICAgICAgICJTRVhfRiIsICJSQUNFX0YiLCAiSElTUEFOSUMiLCAiSU5TVVJBTkNFX0YiLCAKICAgICAgICAgICAgICAgICAiSU5DT01FX0YiLCAiRURVQ0FUSU9OX0YiLCAiVV9SX0YiLCAiQ1JPV0ZMWSIsICJDRENDX1RPVEFMX0JFU1QiLAogICAgICAgICAgICAgICAgICJQUklNQVJZX1NJVEUiLCAiSElTVE9MT0dZX0ZfTElNIiwgIkhJU1RPTE9HWV9GIiwgIkJFSEFWSU9SIiwgIkdSQURFX0YiLAogICAgICAgICAgICAgICAgICJEWF9TVEFHSU5HX1BST0NfREFZUyIsICJUTk1fQ0xJTl9UIiwgIlROTV9DTElOX04iLCAiVE5NX0NMSU5fTSIsCiAgICAgICAgICAgICAgICAgIlROTV9DTElOX1NUQUdFX0dST1VQIiwgIlROTV9QQVRIX1QiLCAiVE5NX1BBVEhfTiIsICJUTk1fUEFUSF9NIiwKICAgICAgICAgICAgICAgICAiVE5NX1BBVEhfU1RBR0VfR1JPVVAiLCAiRFhfUlhfU1RBUlRFRF9EQVlTIiwgIkRYX1NVUkdfU1RBUlRFRF9EQVlTIiwKICAgICAgICAgICAgICAgICAiRFhfREVGU1VSR19TVEFSVEVEX0RBWVMiLCAiTUFSR0lOUyIsICJNQVJHSU5TX1lOIiwgIlNVUkdfRElTQ0hBUkdFX0RBWVMiLAogICAgICAgICAgICAgICAgICJSRUFETV9IT1NQXzMwX0RBWVNfRiIsICJSWF9TVU1NX1JBRElBVElPTl9GIiwgIlBVRl8zMF9EQVlfTU9SVF9DRF9GIiwKICAgICAgICAgICAgICAgICAiUFVGXzkwX0RBWV9NT1JUX0NEX0YiLCAiRFhfTEFTVENPTlRBQ1RfREVBVEhfTU9OVEhTIiwgCiAgICAgICAgICAgICAgICAgIkxZTVBIX1ZBU0NVTEFSX0lOVkFTSU9OX0YiLCAiUlhfSE9TUF9TVVJHX0FQUFJfMjAxMF9GIiwgIlNVUkdfUkFEX1NFUSIsCiAgICAgICAgICAgICAgICAgIlNVUkdfUkFEX1NFUV9DIiwgIlRfU0laRSIsICJTVVJHRVJZX1lOIiwgIlJBRElBVElPTl9ZTiIsICJDSEVNT19ZTiIsICJtZXRzX2F0X2R4IiwKICAgICAgICAgICAgICAgICAiTUVESUNBSURfRVhQTl9DT0RFIiwiU0lURV9URVhUIiksIAogICAgICAgIHN0cmF0YSA9ICJFWFBOX0dST1VQIikKCgpwX3RhYmxlKGRhdGEsCiAgICAgICAgdmFycyA9IGMoIllFQVJfT0ZfRElBR05PU0lTIiksCiAgICAgICAgc3RyYXRhID0gYygiTUVESUNBSURfRVhQTl9DT0RFIikpCmBgYAoKCmBgYHtyfQoKcHJlRXhwTWVkaWNhcmUgIDwtIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlByZS1FeHBhbnNpb24iICYgSU5TVVJBTkNFX0YgPT0gIk1lZGljYXJlIikpCnBvc3RFeHBNZWRpY2FyZSA8LSBucm93KGRhdGEgJT4lIGZpbHRlcihFWFBOX0dST1VQID09ICJQb3N0LUV4cGFuc2lvbiIgJiBJTlNVUkFOQ0VfRiA9PSAiTWVkaWNhcmUiKSkKCiMgcCA9IDAuMjUgd2hlbiBjb21wYXJpbmcgY2hhbmdlIGluIHByb3BvcnRpb24gb2YgcGF0aWVudHMgd2l0aCBNZWRpY2FyZSBiZWZvcmUgYW5kIGFmdGVyIEFDQSBleHBhbnNpb24KcHJvcC50ZXN0KGMocHJlRXhwTWVkaWNhcmUsIHBvc3RFeHBNZWRpY2FyZSksIAogICAgICAgICAgYyhucm93KGRhdGEgJT4lIGZpbHRlcihFWFBOX0dST1VQID09ICJQcmUtRXhwYW5zaW9uIikpLCBucm93KGRhdGEgJT4lIGZpbHRlcihFWFBOX0dST1VQID09ICJQb3N0LUV4cGFuc2lvbiIpKSkpCgpwcmVFeHBOb0luc3VyYW5jZSA8LSBucm93KGRhdGEgJT4lIGZpbHRlcihFWFBOX0dST1VQID09ICJQcmUtRXhwYW5zaW9uIikgJT4lIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKElOU1VSQU5DRV9GID09ICJOb25lIikpCnBvc3RFeHBOb0luc3VyYW5jZSA8LSBucm93KGRhdGEgJT4lIGZpbHRlcihFWFBOX0dST1VQID09ICJQb3N0LUV4cGFuc2lvbiIpICU+JSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoSU5TVVJBTkNFX0YgPT0gIk5vbmUiKSkKCiMgU2lnbmlmaWNhbnQgZGVjcmVhc2UgaW4gdGhlIG92ZXJhbGwgcHJvcG9ydGlvbiBvZiBwYXRpZW50cyB3aXRob3V0IGluc3VyYW5jZSBhZnRlciBBQ0EgZXhwYW5zaW9uIApwcm9wLnRlc3QoYyhwcmVFeHBOb0luc3VyYW5jZSwgcG9zdEV4cE5vSW5zdXJhbmNlKSwgCiAgICAgICAgICBjKG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlByZS1FeHBhbnNpb24iKSksIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlBvc3QtRXhwYW5zaW9uIikpKSkKCnBfdGFibGUobm9fRXhjbHVkZXMsIHN0cmF0YSA9ICJFWFBOX0dST1VQIiwgdmFycyA9ICJEWF9SWF9TVEFSVEVEX0RBWVMiKQoKZGF0YSA8LSBkYXRhICU+JSBtdXRhdGUoSW5zdXJlZCA9IElOU1VSQU5DRV9GICE9ICJVbmtub3duIikKCmBgYAoKCgoKI0thcGxhbiBNZWllciBBbmFseXNpcwoKCiMjQWxsCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJBbGwiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNGYWNpbGl0eSBUeXBlCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkZBQ0lMSVRZX1RZUEVfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0ZhY2lsaXR5IExvY2F0aW9uCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJGQUNJTElUWV9MT0NBVElPTl9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjRmFjaWxpdHkgR2VvZ3JhcGh5CgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJGQUNJTElUWV9HRU9HUkFQSFkiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNBZ2UgR3JvdXAKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkFHRV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjQWdlIEdyb3VwCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkFHRV80MCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0dlbmRlcgoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiU0VYX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNSQUNFX0YKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlJBQ0VfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0hpc3BhbmljCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJISVNQQU5JQyIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0luc3VyYW5jZSBTdGF0dXMKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIklOU1VSQU5DRV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjT3ZlcmFsbCBTdXJ2aXZhbCBwcmUvcG9zdC1BQ0EgZXhwYW5zaW9uCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJFWFBOX0dST1VQIiwgZGF0YV9pbXAgPSBub19FeGNsdWRlcykKYGBgCgoKPCEtLSAjI0luY29tZSAtLT4KCjwhLS0gYGBge3J9IC0tPgo8IS0tIGNsYXNzKGRhdGEkSU5DT01FX0YpIC0tPgo8IS0tIHVuaV92YXIodGVzdF92YXIgPSAiSU5DT01FX0YiLCBkYXRhX2ltcCA9IGRhdGEpIC0tPgo8IS0tIGBgYCAtLT4KCiMjRWR1Y2F0aW9uCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJFRFVDQVRJT05fRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1VyYmFuL1J1cmFsCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJVX1JfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0NsYXNzICh0cmVhdG1lbnQgYXQgcGVyZm9ybWluZyBmYWNpbGl0eSkKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkNMQVNTX09GX0NBU0VfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1llYXIKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIllFQVJfT0ZfRElBR05PU0lTIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjUHJpbWFyeSBTaXRlCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJTSVRFX1RFWFQiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKCiMjSGlzdG9sb2d5CgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJISVNUT0xPR1lfRl9MSU0iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKPCEtLSAjI0JlaGF2aW9yIC0tPgoKPCEtLSBgYGB7cn0gLS0+CjwhLS0gdW5pX3Zhcih0ZXN0X3ZhciA9ICJCRUhBVklPUiIsIGRhdGFfaW1wID0gZGF0YSkgLS0+CjwhLS0gYGBgIC0tPgoKIyNHcmFkZQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiR1JBREVfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0NsaW5pY2FsIFQgU3RhZ2UKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9DTElOX1QiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNDbGluaWNhbCBOIFN0YWdlCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJUTk1fQ0xJTl9OIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCjwhLS0gIyNDbGluaWNhbCBNIFN0YWdlIC0tPgoKPCEtLSBgYGB7cn0gLS0+CjwhLS0gdW5pX3Zhcih0ZXN0X3ZhciA9ICJUTk1fQ0xJTl9NIiwgZGF0YV9pbXAgPSBkYXRhKSAtLT4KPCEtLSBgYGAgLS0+CgojI0NsaW5pY2FsIFN0YWdlIEdyb3VwCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJUTk1fQ0xJTl9TVEFHRV9HUk9VUCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1BhdGhvbG9naWMgVCBTdGFnZQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVE5NX1BBVEhfVCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1BhdGhvbG9naWMgTiBTdGFnZQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVE5NX1BBVEhfTiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1BhdGhvbG9naWMgTSBTdGFnZQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVE5NX1BBVEhfTSIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1BhdGhvbG9naWMgU3RhZ2UgR3JvdXAKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9QQVRIX1NUQUdFX0dST1VQIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjTWFyZ2lucwpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJNQVJHSU5TIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjTWFyZ2lucyBZZXMvTm8KYGBge3J9CiN1bmlfdmFyKHRlc3RfdmFyID0gIk1BUkdJTlNfWU4iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyMzMCBEYXkgUmVhZG1pc3Npb24KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlJFQURNX0hPU1BfMzBfREFZU19GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjUmFkaWF0aW9uIFR5cGUKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlJYX1NVTU1fUkFESUFUSU9OX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKCiMjTHltcGhvdmFzY3VsYXIgSW52YXNpb24KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkxZTVBIX1ZBU0NVTEFSX0lOVkFTSU9OX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNFbmRvc2NvcGljL1JvYm90aWMKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlJYX0hPU1BfU1VSR19BUFBSXzIwMTBfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1N1cmdlcnkgUmFkaWF0aW9uIFNlcXVlbmNlIAoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiU1VSR19SQURfU0VRIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjU3VyZ2VyeSBZZXMvTm8KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlNVUkdFUllfWU4iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNSYWRpYXRpb24gWWVzL05vCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJSQURJQVRJT05fWU4iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNDaGVtbyBZZXMvTm8KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkNIRU1PX1lOIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCgojI1RyZWF0bWVudCBZZXMvTm8KYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVHhfWU4iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNNZXRhc3Rhc2VzIGF0IER4CmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIm1ldHNfYXRfZHhfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgo8IS0tICMjVHVtb3IgU2l6ZSAtLT4KCjwhLS0gYGBge3J9IC0tPgo8IS0tIHVuaV92YXIodGVzdF92YXIgPSAiVF9TSVpFIiwgZGF0YV9pbXAgPSBkYXRhKSAtLT4KPCEtLSBgYGAgLS0+CgojVHVtb3Igc3BlY2lmaWMgVmFyaWFibGVzCgoKIyMjTm9kZSBTaXplCgoKI0NveCBQcm9wb3J0aW9uYWwgSGF6YXJkIFJhdGlvCgojI01vZGVsICMxCgojIyNGdWxsIGFuYWx5c2lzCgpgYGB7cn0KbW9kZWxfb25lIDwtIGNveHBoKFN1cnYoRFhfTEFTVENPTlRBQ1RfREVBVEhfTU9OVEhTLCBQVUZfVklUQUxfU1RBVFVTID09IDApCiAgICAgICAgICAgICAgICAgICAgIH4gU1VSR19SQURfU0VRICsgSU5TVVJBTkNFX0YgKyBBR0UgKyBTRVhfRiArIFJBQ0VfRiArIElOQ09NRV9GICsgVV9SX0YgKwogICAgICAgICAgICAgICAgICAgICAgRkFDSUxJVFlfVFlQRV9GICsgRkFDSUxJVFlfTE9DQVRJT05fRiArIEVEVUNBVElPTl9GLAogICAgICAgICAgICAgICAgICAgICBkYXRhID0gZGF0YSkKbW9kZWxfb25lICU+JSBzdW1tYXJ5KCkKCgpgYGAKCiMjI1N1bW1hcnkgb2YgTW9kZWwKCmBgYHtyfQptb2RlbF9vbmUgJT4lCiAgICAgICAgdGlkeSguLCBleHBvbmVudGlhdGUgPSBUUlVFKSAlPiUKICAgICAgICBzZWxlY3QodGVybSwgZXN0aW1hdGUsIGNvbmYubG93LCBjb25mLmhpZ2gsIHAudmFsdWUpICU+JQogICAgICAgIHJlbmFtZShWYXJpYWJsZSA9IHRlcm0sCiAgICAgICAgICAgICAgIEhhemFyZF9SYXRpbyA9IGVzdGltYXRlKSAlPiUKICAgICAgICB0YmxfZGYgJT4lCiAgICAgICAgcHJpbnQobiA9IG5yb3coLikpCgpgYGAKCiMgUHJlZGljdG9ycyBvZiBTdXJnZXJ5CmBgYHtyfQoKZml0X3N1cmcgPC0gZ2xtKFNVUkdfVEYgfiBBR0VfRiArIFNFWF9GICsgUkFDRV9GICsgSU5DT01FX0YgKyBVX1JfRiArCiAgICAgICAgICAgICAgICAgICAgICBGQUNJTElUWV9UWVBFX0YgKyBGQUNJTElUWV9MT0NBVElPTl9GICsgRURVQ0FUSU9OX0YgKyBFWFBOX0dST1VQLAogICBkYXRhID0gZGF0YSAlPiUgZmlsdGVyKFNVUkdFUllfWU4gIT0gIlVrbiIpICU+JSBkcm9wbGV2ZWxzKCkgJT4lIG11dGF0ZShTVVJHRVJZX1lOID0gYXMubG9naWNhbChTVVJHRVJZX1lOKSkpCgpzdW1tYXJ5KGZpdF9zdXJnKQoKZXhwKGNiaW5kKCJPZGRzIHJhdGlvIiA9IGNvZWYoZml0X3N1cmcpLCBjb25maW50LmRlZmF1bHQoZml0X3N1cmcsIGxldmVsID0gMC45NSkpKQpgYGAKCiMgUHJlZGljdG9ycyBvZiBNZXRhc3Rhc2lzIGF0IFRpbWUgb2YgRGlhZ25vc2lzLCBsaW1pdCB0byB0aG9zZSBjYXNlcyB3aGVyZSBkYXRhCiMgIGFib3V0IGV4cGFuc2lvbiBzdGF0dXMgaXMgYXZhaWxhYmxlICg+IEFnZSAzOSwgbm9uLWFtYmlndW91cyBzdGF0dXMgc3RhdGVzKQpgYGB7cn0KCmZpdF9tZXRzIDwtIGdsbShtZXRzX2F0X2R4X0YgfiBBR0VfRiArIFNFWF9GICsgUkFDRV9GICsgSU5DT01FX0YgKyBVX1JfRiArCiAgICAgICAgICAgICAgICAgICAgICBGQUNJTElUWV9UWVBFX0YgKyBGQUNJTElUWV9MT0NBVElPTl9GICsgRURVQ0FUSU9OX0YgKyBFWFBOX0dST1VQLAogICBkYXRhID0gbm9fRXhjbHVkZXMpCgpzdW1tYXJ5KGZpdF9tZXRzKQoKZXhwKGNiaW5kKCJPZGRzIHJhdGlvIiA9IGNvZWYoZml0X21ldHMpLCBjb25maW50LmRlZmF1bHQoZml0X3N1cmcsIGxldmVsID0gMC45NSkpKQpgYGA=